September 15, 2003 by Allen George
Debugging in Linux
…is a pain IMHO. The standard debugger you’re gonna use is gdb and honestly, having to debug using gdb is like having your teeth pulled when being steamed alive. Personally I find it slows me down significantly, since I have to type every single command into the interface.
And so on… DDD for all its cute visualization capabilities doesn’t have the usability of the debugging tools I’ve used in the past. Not only that, all the front ends for gdb involve a nice little command prompt for me to enter my gdb commands. Umm…hmm. Isn’t it possible for me to successfully debug without having to drop to the gdb shell to have to do it? I mean, I was successfully able to develop using Visual C++ and I didn’t have to type a single debug command there. Point and Click….
I suppose what I’m gonna say may sound foolish – but I _really_ prefer having a well designed GUI frontend to my debugger. I mean – I need like a ‘Visual GDB for Dummies’ cause frankly when I’m trying to track down a problem the last thing I need is trying to remember the commands and how to print out the contents of my classes in a meaningful fashion. So far under Linux I haven’t found any visual debuggers with which I’ve felt the same level of comfort as MS VC++. As heretical as it may sound to some, Microsoft does make excellent development environments. This only _increases_ my respect of free software/open source programmers since they’re able to program under such trying conditions.
Now I know that there are quite a few commercial debuggers for Linux but frankly, their high price tag puts me off immediately. There are a lot of frontends for gdb but they’re mostly the same. Support for breakpoints and basic watches but anything more complex than that and you have to go to the command line. Another thing that bothers me (a lot) when I’m debugging with gdb is the propensity it has to descend into lower level libraries when stepping through code. I remember a time when I was debugging a program and when I hit my “cout <<" line I was dumped into the code of the standard C++ libraries. Absolutely the last place I wanted to be... As you can imagine its freaking annoying to have that happen to you. Pshh...I'm feeling ranty again.