Wednesday, March 29, 2006

Killer Debugging Session

At work I've been needing to do simulation runs using my group's primary software product. Unfortunately I've been having trouble with the runs crashing. Some of them would, some wouldn't. It depended on the random seed I used for the run. Oh, and the specific simulation wouldn't run fast enough on my Windows box to get very far into it, so I had to do my debugging remotely on one of our Linux boxes using GDB, which isn't the quickest debugger to learn. Anyway, I'm pretty sure I finally tracked down the bug. This was one of those crashes that would only occur when the planets were aligned just right (figuratively speaking of course) - my simulation had a few properties that made it more likely that most others. Plus, the location of the crash was about five times removed from the two places where semi-related things had to occur to set the crash up. All in all, I think I spent at least 20 hours tracking this thing down, which is an awful lot of time to spend tracking down a single bug.

On the plus side, I'm pretty confident using GDB now.

No comments: