The Art of Debugging with GDB, DDD, and Eclipse is an introductory to advanced guide for debugging.
It has its primary focus on gdb and somehow DDD and Eclipse got in the way.
However it teaches multiple aspects and techniques of debugging in general, that can translate well into other languages an tools.
For my taste, it might be better off without including DDD and Eclipse but rather focusing on gdb alone, since I found myself skipping through the other ones anyway.
Quickest Way To Learn Debugging
The art of debugging offers an excellent introduction to a wide scope of techniques and features. It focuses primarily on GDB and C/C++, but the tips and techniques can be transferred to other languages as well.
Once you understand the concepts that this book explains in gdb, you’ll be able to use any debugger more efficiently.
Since every task in gdb is performed manually and most debuggers can do them with a click on a button, you’ll really understand what’s going on.
Some fancy tricks you’ll learn along the way:
- Using a general purpose debugger
- Different types of breakpoints and triggering
- How and when to use a feature/tool that a debugger uses
- Variable analysis
- How to resolve segmentation faults
- and many more
Not only for gdb and C/C++
While most advice is very C/C++, GDB and Linux centric, the general knowledge and tricks can be used in any language, debugger and OS.
The title might be misleading to some though.
This is not a book on how to debug Java with eclipse.
If your interest is in debugging Java applications and are not interested in general debugging methods, you should look elsewhere.
However, if you follow the exercises in the book and are able to debug C with GDB, you should have no problems with debugging Java applications.
I read this book and transferred the knowledge to debugging Node.JS applications with visual studio code and chrome tools and C# Software using Visual Studio.
It has come in handy to know 1 or 2 GDB commands while debugging scripts in Linux, or for binary exploitation challenges.
Unfortunately, the art of debugging wants to focus on three debuggers at once, and while this might work for GDB and DDD (because DDD is just a GUI for GDB), eclipse gets a bit in the way. It almost feels pushy.
I caught myself skipping over the parts with eclipse a lot because I wanted to read on and not do the exercise for every debugger.
Maybe the authors should try to focus on GDB alone (and maybe mention DDD) and leave Eclipse for another book.
The Art Of Debugging
This book is a great supplementation in every engineer’s bookshelf. You’ll find yourself using or looking up the tricks and tips mentioned in this book from time to time.
The only downsides are that you should understand a bit of C- Syntax and be familiar with a Linux system since all examples are on Linux. You can, however, do the exercises with any language and OS. You’ll just get slightly different results.
If you can overlook the eclipse stuffing and are able to transfer knowledge in similar domains, you should not hesitate and get this book.
*this post contains affiliate links