Ever have an application crash? Well, VerifyMyPC crashes and I have no clue as to where it is crashing. I have some idea: I introduced Alternate Data Stream support in 2.4 and the core engine started crashing around the same time. I've stared at the relevant MSDN Library documentation and scratched my head and even made faces at the code and still couldn't figure it out (making faces didn't help much, but it sure was fun*).
* There goes my credibility. However, the problem is intermittent. And by "intermittent", I mean that it crashes once in a VERY great while. The one time I had the problem occur on my computer, I didn't hook in with a debugger because I figured I could replicate it later. Still beating my head against a wall for that one. So I came up with an alternate solution. Microsoft has this program called "Windows Error Reporting" or WER for short. Go search Google (for you Google nuts). You know those dialogs that say, "Send this Error Report to Microsoft"? Well, WER is where those reports end up. To get into the program requires modifying your source code to include special stuff and spending several thousand dollars - then you have to pay something like $500 per year to stay in the program. And then you don't get error reports until you say to collect certain types of error reports on the website. In other words, a big, expensive, ugly mess that doesn't really work. Companies have to be interested enough AND willing to spend that kind of dough to get in. And _users_ know that hitting the "Send Error Report" button doesn't fix anything. I already knew about WER and how it worked (through previous experience) and I also don't want to spend that type of money if I can avoid it. And, in general, my code is pretty solid. My crash bug rate is something like once every 6 months _internally_ and even less with releases. Still, I would like to know when an application crashes. Now for my solution. I found some code on CodeProject.com and tried it out. As usual, code from there is inevitably broken (from my perspective). So, I came up with the nifty plan to send the error report generated to my web server which would then e-mail me (too many problems with direct e-mail). 5,000+ lines of code and many sleepless nights and hundreds of debugging sessions later (dropping in a small chunk of my core library plus fixing 50 or so problems the original authors made - I didn't want to dump the whole thing in), I have what I'd call a bit of pure genius. I have it set up so that the crash reporter is completely optional but support for it is compiled into every application without doing a single thing. What displays is a dialog (heavily modified) that requires an e-mail address*. The package includes a couple extra files (beyond CodeProject's) containing OS, CPU, RAM, primary HD information plus what version of VerifyMyPC they are running (I have 4 versions per release!). And the whole package is compressed prior to sending. * Most people don't like giving out their e-mail address, but most users like to see bugs get fixed...sooo, there's a tradeoff here. Microsoft's approach clearly doesn't work (with a few minor and VERY rare exceptions). With this I should be able to figure out the crash bug. A terrible approach, but the only valid one since I have only had it happen one time on my computer and hasn't happened since. It would be great if people installed VerifyMyPC and let it run a few days to see if they run into the crash bug to help me out. I've thought about releasing this as a new product, but it requires a very special setup for it to be an elegant solution like this one. And the core library drop isn't exactly pretty. I was trying to minimize the impact of the core library interface (technically, both the original author and especially me are breaking the rules by doing stuff inside a crash situation - I was trying to minimize my impact but 5,000 lines of code isn't pretty). I suppose if people were interested, I might consider it but it would be more of a service-style install (i.e. I work with your team and you pay me lots of cash for the privilege). -- Thomas Hruska CubicleSoft President Ph: 517-803-4197 *NEW* VerifyMyPC 2.5 Change tracking and management tool. Reduce tech. support times from 2 hours to 5 minutes. http://www.CubicleSoft.com/VerifyMyPC/
