Book Review: The Art of Debugging

October 25, 2008
Ganadeva Bandyopadhyay

One of the frequently overlooked parts of many a computer engineering syllabus, namely debugging, is the topic of discussion for this book. The subject is addressed focusing on the usage of three debugging tools GDB, DDD and Eclipse with a more or less heavy reliance on Gnu Project Debugger(GDB) developed by Richard Stallman.

While GDB uses the command line syntax, DDD offers a GUI front end and Eclipse is an IDE for debugging working on top of GDB or some other debugger.
Starting from some basics of debugging and the three basic mechanisms for pausing, viz. breakpoint, watchpoint and catchpoint, the authors have discussed the topics such as inspecting and setting variables, debugging program crashes, debugging in multiple activities context such as client/server network programs,threaded code, etc. as well as special topics such as programs unable to compile and debugging curses programs.

There is also a discussion for making best use of text editors, compilers and other features in the debugging context. The book concludes with suggestions for using GDB/DDD/Eclipse for languages such as Java, Perl and Python.

Most of the examples are in line with the theory and bring out the concepts clearly. There is the repeated comparison of usage of the three debugging tools for the same example so the reader can draw their own conclusions and grow on their own favorite debugging tool. Some of the more interesting intricacies are occurring in the chapter where program crashes and the client server program debugging is discussed.

While the examples in this book are extensive, one of the useful additions to this book could be a list of unsolved and debuggable code for further practice. This could bring out a few more expert debuggers from the readers of this book. All in all, a good book in an area where interest is difficult to inculcate due to widely dispersed documentation.

In search of truth View Ganadeva Bandyopadhyay's profile on LinkedIn
eXTReMe Tracker
Keep reading for comments on this article and add some feedback of your own!

Comments! Feedback! Speak and be heard!

Comment on this article or leave feedback for the author

October 25, 2008
06:38 AM

ganadeva, don't you think that debugging is also an art, wherein you develop your own style and approach..i agree that at times, we need to follow the conventional step by step process, but at times, once own style and the way one cracks the problem matters. don't you feel so?

Ganadeva B
October 25, 2008
09:59 AM

It is true in a way, but having a good course in debugging is always beneficial. While it does take away some of the magic around this art, the benefits to budding pracitioners is immense.

Without a set of basic guidelines, it does turn off some of the less determined beginners, such as when the time comes to choosing the optional subjects in engineering courses.

October 25, 2008
01:20 PM

Debugging does not have to be an art. What makes it an art is our own lack of mastery of the subject, hence need to meander our way to trouble shooting.

Some people say coding and design too is an art, and one can find some pretty crazy programs and system designs out there. That is why code reviews and design reviews came about in late 80s, to make them follow few basic conventions and standardizations.

Each computer language and software evolves its own best practices in coding and debugging. We make art out of them out of our own expediency.

GDB/DDD/Eclipse are not art for me, they sound greek to me. What the heck are they?

Ganadeva B
October 25, 2008
02:39 PM

GDB:GNU Project Debugger
DDD:Data Display Debugger, GUI to GDB
Eclipse:Open Source IDE

Add your comment

(Or ping:

Personal attacks are not allowed. Please read our comment policy.

Remember Name/URL?

Please preview your comment!