| | |  | Software Engineering | Home » » » The Art of Debugging with GDB, DDD, and Eclipse | | | | | | | Product Promotions: | | | | | Description: | | Debugging is crucial to successful software development, but even many experienced programmers find it challenging. Sophisticated debugging tools are available, yet it may be difficult to determine which features are useful in which situations. The Art of Debugging is your guide to making the debugging process more efficient and effective. The Art of Debugging illustrates the use three of the most popular debugging tools on Linux/Unix platforms: GDB, DDD, and Eclipse. The text-command based GDB (the GNU Project Debugger) is included with most distributions. DDD is a popular GUI front end for GDB, while Eclipse provides a complete integrated development environment. In addition to offering specific advice for debugging with each tool, authors Norm Matloff and Pete Salzman cover general strategies for improving the process of finding and fixing coding errors, including how to: - Inspect variables and data structures
- Understand segmentation faults and core dumps
- Know why your program crashes or throws exceptions
- Use features like catchpoints, convenience variables, and artificial arrays
- Avoid common debugging pitfalls
Real world examples of coding errors help to clarify the authors' guiding principles, and coverage of complex topics like thread, client-server, GUI, and parallel programming debugging will make you even more proficient. You'll also learn how to prevent errors in the first place with text editors, compilers, error reporting, and static code checkers. Whether you dread the thought of debugging your programs or simply want to improve your current debugging efforts, you'll find a valuable ally in The Art of Debugging.
| | | Product Details: | | | Author:
| Norman Matloff | | Paperback:
| 280 pages | | Publisher:
| No Starch Press | | Publication Date:
| September 29, 2008 | | Language:
| English | | ISBN:
| 1593271743 | | Product Length:
| 9.18 inches | | Product Width:
| 7.06 inches | | Product Height:
| 0.89 inches | | Product Weight:
| 1.18 pounds | | Package Length:
| 9.1 inches | | Package Width:
| 7.0 inches | | Package Height:
| 0.4 inches | | Package Weight:
| 1.3 pounds | | Average Customer Rating:
| based on 8 reviews |
| | | | Customer Reviews: | |
Average Customer Review:
( 8 customer reviews )
Write an online review and share your thoughts with other customers.
Most Helpful Customer Reviews
26 of 28 found the following review helpful:
Quite a gem!Feb 03, 2009
By Mark K. I must come clean first - I know the authors. Peter asked me to review one of the sections in the book many ages ago when the book was in its infancy. The book has progressed much since then, and I must admit this is much more than I was expecting from a book about debugging!
Chapters 1 through 3 are the starter chapters that discuss the core debugging paradigms such as breakpoints and variable analysis. Chapter 1 goes through some of the basic concepts of debugging for those new to the idea (e.g., hobbyists and just-out-of-college programmers) but it's probably less useful for those already familiar with the concept. Chapter 2 goes through the basic debugging operations, such as setting breakpoints and analyzing variables, with an emphasis on how breakpoints can be set, cleared, and triggered using various methods. Chapter 3 goes through more on how variables of different storages can be viewed and displayed.
Chapters 4 and 5 are where things start to get interesting. Chapter 4 discusses how the debugger can be used to analyze core dumps, and touches on operating system concepts just enough to be productive in debugging for those not familiar with OS architectures. Chapter 5 discusses debugging threaded applications. As examples, applications written using popular multi-threaded and multi-process libraries such as pthread, MPI, and OpenMP are discussed, which makes the chapter more practical.
Chapter 6 is an interesting chapter. Section 6.1 goes through some common compiler error messages and how one should interpret them. They're concepts all first semester programming course students should read. It should be read either before chapter 1 or immediately after for beginning programmers, but it's also an entertaining section to read for the experienced programmers who goes through what the section discusses on a daily basis without ever giving it a second thought anymore. Section 6.2 should be a great read for anyone whose hair turned gray trying to debug Curses or NCurses applications under UNIX.
Chapter 7 discusses various tricks programmers use to write less buggy programs. Most of these are widely known concepts that are rarely taught in class - Vim tricks for matching parentheses, syntax highlighting, using errno and perror, libraries for catching buffer overflows, etc. Mentioning of the __LINENO__ directive is strangely lacking in this chapter, and I'm not sure how useful lint is these days but the chapter looks as complete as one would expect. The chapter also delightfully introduces strace and ltrace, though more examples would be helpful for those not familiar with OS concepts.
The final chapter is for those that want to use GDB/DDD/Eclipse in other languages. I have never felt the need to use debuggers with scripts but I probably would sing a different tune once I start using it.
The book admittedly has a Linux slant to it, but practical examples need a practical platform under which to give the examples and Linux is as accessible as it gets for most people. Most of the discussions are applicable in any platform, but they are especially applicable in Linux and UNIX variants. Chapters 1 and 6 should be a part of all introductory programming courses and should provide a good starting point to which a seasoned programmer can point a new programmer. The remaining chapters are relatively easy read yet packed with useful information to which programmers will refer back asking themselves, "what was that command that does ...?"
6 of 7 found the following review helpful:
Much better than man gdbSep 06, 2010
By T. Harris
"http://talkaboutquality.wordpress.com"
The Art of Debugging isn't really much about the "art", although there is a very brief "principles of debugging" section at the beginning. It is about how to use GDB, DDD, and Eclipse effectively and completely. Very detailed guidance and examples. It's 250 pages but looks like less. If you want to become an expert at debugging software systems, there's probably no substitute for experience, but a concise tutorial on GDB and its various GUIs is a great start.
Good beginning Intro to GDBOct 23, 2011
By Ken This is a good book for those new to GDB, which is what I was looking for. It's easy to read, and gets you into GDB quickly. At each step, the reader is shown how to do essential things like setting breakpoints, inspecting memory, and stepping through your program with easy to follow examples. The authors also show how both DDD and Eclipse work in debugging programs, as GDB is the back end for each.
The book isn't meant to be a comprehensive GDB reference, which is fine. Other books fill that role.
Excellent introduction to debugging with GDB, DDD and EclipseOct 16, 2010
By Frank R. Matz This book is an excellent introduction to debugging with GDB, DDD and Eclipse. By the time you've finished the book, you should have a very good understanding of how to use these various programs.
3 of 5 found the following review helpful:
Great book for efficient tools. Little bit redundancy.Aug 17, 2010
By Feng,Dong The lovely part is the book is written in a way to not only teach knowledge but also to inspire people think of the method of debugging. I have been inspired in reading the book to solve several problems slowing down my debugging for long while, for which the exact method is not covered by the book but without the inspiration I could not find the solution in short.
My personal feeling is, since it is already so inspiring, there is no need to cover three debuggers with overlapping functionality. Just elaborate one and say the other two have or have not equal function will be enough. It is trivial for most readers to induce the usage of the tools they are using. But it maybe for myself only.
See all 8 customer reviews on Amazon.com
| | |
|