Crashing Smartly

• Chris Liscio

It's rare that I link elsewhere on my blog, but John Gruber has put up an interesting post about Smart Crash Reports over at daringfireball.net </p> <p> The reason I bring it up here is that I want to point out to my long-time users that I do not install Smart Crash Reports. I don't even interact with it if it's installed on the machine. In fact, Smart Crash Reports was released a while after FuzzMeasure 1.3, so it would have taken quite a hunk of work to integrate it so late in the game. </p> <p> I also never plan to integrate with Smart Crash Reports in the future, because I like my method quite a bit. It's simple, and it was easy for me to implement. I got the idea from Gus, actually, and it was outlined in further detail in Gruber's article. </p> How does FuzzMeasure detect crashes? <p> FuzzMeasure looks for a crash log in the CrashReporter log directory on the user's system on every launch. If the file exists, FuzzMeasure prompts the user for more information (and they're welcome to decline providing details) such as an email address and a short description of what happened before the crash. </p> <p> One major flaw with my current method is that it doesn't get invoked until the next launch of FuzzMeasure, which could be a long time after the user encountered the crash. I plan to try and remedy that soon, because my crash reports have helped me track down a lot of crashers — often without further comments from the user! </p> Where do the crash reports go? <p> FogBugz has a feature called BugzScout, which allows me to submit bugs into my bug system via a HTTP POST to my FogBugz server. An issue is created automatically with the contents of the crash log, and I'm emailed about the issue almost immediately. </p> <p> One super-neat feature of BugzScout is that it will talk back to the submitter in the response of the HTTP POST, and provide further details. So, if someone encounters a crash that I've already fixed in my system, I can tell FogBugz to stop informing me when a user encounters that crash, and enter some informative text that the user sees in the report window, such as “This is now fixed in the newest release”. Really neat stuff! </p>