Windows Error Reporting (was: Re: Open Letter to Rev: Quality Is Job #1)
wjm at wjm.org
Sat Oct 21 17:09:30 EDT 2006
> Oh, sorry, I got confused about the paper part. I think "folded" is what
> did it.
The "pressed and folded" comment was a reference to laundry. It's an idiom
often used to indicate something is cleaned and prepared thoughtfully, as a
household service might do.
> According to the page you pointed to there are some expenses in getting a
Yes, you need a secure certificate, which is the same thing that is required
to digitally "sign" code, provide secure sites (https://) for credit card
transactions, have your code certified by Microsoft "WinQual", and do
anything associated with electronic identity. It will also probably be
required to pass certain security checks in Vista (or at least if you don't
have one it will look scarier to end users when installing).
You certainly wouldn't want "just anybody" to be able to view the crash
reports for your product, would you? The cert prevents fraud on the part of
malicious hackers and protects end-user privacy.
WinQual (and therefore, WER) requires a cert from Verisign, which costs
$400. It's possible Rev already has one they can use: the Rev store uses a
cert issued by Thawte, which is owned by Verisign. (But I don't know if it
would be accepted as the same by WinQual.) Even if they don't, the cert is
less than the cost of a license of Rev Studio + update pack. I'm sure Rev
has lost at least one sale due to the quality issues with 2.7.x, so IMO $400
is probably a worthwhile investment considering the benefit.
The WER service itself is completely free.
> Does the app have to do something? Wouldn't it cost money to make and
> test changes to the application? I don't see how this is free. How does
> RunRev associate a crash with a bug?
These issues are all well addressed in the links. No, Rev does not have to
make changes in their code. The WER dialog pops up whenever ANY Windows
application crashes in the supported manners. (Unfortunately, not all
crashes can be trapped by WER.) Registration simply lets software vendors
view the data already being collected by those crash reports. It also
enables them to set up a "response" to end users for each type of crash,
which could be any kind of web page (including solutions/workarounds,
registering for updates to the issue) and/or a further request for a "full"
memory dump and system configuration data. The crashes are categorized by
the type of error produced, and other "buckets." See the msdn site for more
> I also missed the mail where we learned that RunRev does not participate.
> I get the impression that you think this is a shortcoming, that this is
> an obvious use of resources.
Although no one officially has come out and directly stated that Rev does
not use WER, Lynn Fredricks clearly left the impression (at least by my
reading) this was so. Also, see below for additional info.
Yes, I do happen to believe that the automatically-collected, organized
crash report data from WER are important enough that "leaving them on the
table" is a mistake. The data are already being collected. The only resource
required is someone to look at them. If my app were crashing and someone had
the logs that would show me what caused those crashes, I'd consider that
> I didn't see how you propose that this is integrated with error reporting
> for application developers, that is, those of us who build and distribute
> applications. Are you suggesting that error reports for applications are
> sent to RunRev? Would those be sent to developers? Or should developers
> use an external to override the WER settings? I wonder how folks would
> feel about crash reports on a product obtained from me being sent to
I do not know if Windows can tell the difference between the Rev IDE
crashing and a Rev standalone crashing. I don't even know the mechanism to
"digitally sign" a Rev standalone, or even if this is possible. Certainly
the REV IDE/Engine itself could be digitally signed. It's an interesting
idea that scripters like you or I might be able to use WER. However, even if
we were to receive these reports it is not clear they would be much use to
us, as we do not have the Rev engine source code or a debugger for it. It
might even be the case that Rev itself can't make use of them for one
technical reason or another. I do know that someone using Visual Studio can
easily load these snapshots and see the application in the state it was in
exactly when the crash occurred.
> I just did a spot check and the functions I looked at require Vista.
That is incorrect. WER was introduced in Windows XP and Windows Server 2003.
Vista does support WER, but Vista is not required.
> I saw that less than 2000 companies participate in WER. That doesn't
> make it seem so obvious to me.
Because there are 2 billion companies that write Windows software, or what?
How many would there have to be for you to consider it "best practices?" Are
you suggesting that only a tiny fraction of all Windows developers use WER?
Certainly after the top 1000 vendors you're getting into the territory of
guys working out of their cubicles/basements or extremely specialized niche
applications. I know that Apple, Adobe, Corel, Logitech, AOL, Creative Labs,
nVidia, ATI, VMware, Iomega and Palm are among those 2,000.
ACTUALLY, have a look at https://winqual.microsoft.com/SignUp/ and pull down
the form menu. That lists the companies registered for WER. You'll see just
about every recognizable name in the Windows software and hardware industry
listed there. But not Rev.
I don't think there's a single user of Windows who has NOT seen the WER
dialog appear at least once, if not multiple times. That makes it pretty
obvious to me.
> I think you have a suggestion here, but I'm having trouble seeing it.
You're kidding, right? The suggestion is for Rev to use WER if possible. I
said exactly that in my post of 10/20 10:04pm Eastern:
> [...] I suggest the answer is somewhere in the vicinity of:
> [...] immediately sign up for the free WER program from Microsoft so [Rev]
> can better identify and more quickly eliminate crashes.
More information about the Use-livecode