with friends like these
A big part of every programmer’s life is debugging. Easily the majority, in my experience, and I like to think that I’m not a lot worse than average at this programming thing. Given that so much time is spent on it, the tools used can have a material impact on the quality of life of a debugging programmer.
On Linux, the debugger of record is “gdb”:http://sources.redhat.com/gdb/, which is often to the practice of debugging as a gasoline aquarium is to fire prevention. I’ve been playing with “some C++ software”:http://www.zeroc.com/ice.html over the weekend, and this has given me occasion to experience the “joys of gdb”:http://www.google.com/search?q=%22joys+of+gdb%22 anew:
(gdb) p *this Segmentation fault
[...time passes, work is repeated, hopes build again...]
(gdb) p _server Segmentation fault
Maybe “6.0″:http://sources.redhat.com/gdb/download/ANNOUNCEMENT will be better, but then maybe not:
Specifically, if you set a breakpoint in a constructor or a destructor, gdb will put a breakpoint in one of the versions, but your program may execute the other version. This makes it impossible to set breakpoints reliably in constructors or destructors.
I wonder how much MSVC costs around here.