[]RSS

About Archives Artwork Comic Contact Philosophy Projects Tags

Fun VS2005 bug, bad case handling

[Comment]

August 9th, 2007 in Micro Blog

I found a fun VS 2005 bug today:

  1. Run an application with an assert that’s hit
  2. Bring up the JIT debugger, based on Windows/Studio prompts
  3. Edit and save a file while (or after) debugging from that VS session
  4. If the file’s name was mixed case, Studio will save it in all-lowercase (and now you have 2 files with similar names)
  5. The new file will also have its line endings munged/reversed/mixed

I’ve seen this bug before, but have never been able to reproduce it reliably. Reverting it, of course, requires moving the changes to the original file by hand (or the diffs will be messed up).

Abort to debug

[Comment]

April 11th, 2006 in Rants. Weblog

Or not. It’s Retry to debug. Of course!

Yes, the “Press Retry to debug the application” dialog is still a part of Microsoft’s Visual Studio 8. And yes, I still press abort half the time and curse it when I lose the assertion context. Studio 8 is generally a great development tool, but when is Microsoft going to take the time to polish their user interface? This bug has been bugging me for almost 10 years!

Most unixes take a slightly different approach. When an application finds itself in la-la land, the OS produces a dump of the state called a core file (Windows can do something like this too if properly configured). The core dump contains enough information to restart the application in the exact state it failed in, making it easy to debug over and over again. The file can also be sent to other developers, who can use it to debug the very same crash.

Most of the time when a unix program core dumps on you, there’s no pop-up to tell you about it. Some newer unix-like systems provide crash notification and then restart the program for you, though often a silent failure is desired.

Microsoft’s choice to show a dialog in this case is sane, they just need to spend a few hours and clean up the horridly unusable user interface.