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 Identifiers
Publisher
No Starch Press, Incorporated
ISBN-10
1593271743
ISBN-13
9781593271749
eBay Product ID (ePID)
63647990
Product Key Features
Author
Peter Salzman, Norman Matloff
Publication Name
Art of Debugging with Gdb, DDD, and Eclipse
Format
Trade Paperback
Language
English
Features
New Edition
Subject
Programming / General, Software Development & Engineering / Quality Assurance & Testing, Software Development & Engineering / General, Programming Languages / C
Publication Year
2008
Type
Textbook
Subject Area
Computers
Number of Pages
280 Pages
Dimensions
Item Length
9.2 in
Item Height
0.9 in
Item Width
7 in
Item Weight
18.9 Oz
Additional Product Features
LCCN
2003-017566
Intended Audience
Scholarly & Professional
Lc Classification Number
Qa76.9.D43
Edition Description
New Edition
Table of Content
PREFACE;Chapter 1: SOME PRELIMINARIES FOR BEGINNERS AND PROS; 1.1 Debugging Tools Used in This Book; 1.2 Programming Language Focus; 1.3 The Principles of Debugging; 1.4 Text-Based vs. GUI-Based Debugging Tools, and a Compromise Between Them; 1.5 Main Debugger Operations; 1.6 Online Help; 1.7 Introductory Debugging Session; 1.8 Use of Startup Files;Chapter 2: STOPPING TO TAKE A LOOK AROUND; 2.1 Mechanisms for Pause; 2.2 Overview of Breakpoints; 2.3 Keeping Track of Breakpoints; 2.4 Setting Breakpoints; 2.5 Extended GDB Example; 2.6 Persistence of Breakpoints; 2.7 Deleting and Disabling Breakpoints; 2.8 More on Viewing Breakpoint Attributes; 2.9 Resuming Execution; 2.10 Conditional Breakpoints; 2.11 Breakpoint Command Lists; 2.12 Watchpoints;Chapter 3: INSPECTING AND SETTING VARIABLES; 3.1 Our Main Example Code; 3.2 Advanced Inspection and Setting of Variables; 3.3 Setting Variables from Within GDB/DDD/Eclipse; 3.4 GDB's Own Variables;Chapter 4: WHEN A PROGRAM CRASHES; 4.1 Background Material: Memory Management; 4.2 Core Files; 4.3 Extended Example;Chapter 5: DEBUGGING IN A MULTIPLE-ACTIVITIES CONTEXT; 5.1 Debugging Client/Server Network Programs; 5.2 Debugging Threaded Code; 5.3 Debugging Parallel Applications; 5.4 Extended Example;Chapter 6: SPECIAL TOPICS; 6.1 What If It Doesn't Even Compile or Load?; 6.2 Debugging GUI Programs;Chapter 7: OTHER TOOLS; 7.1 Making Good Use of a Text Editor; 7.2 Making Good Use of the Compiler; 7.3 Error Reporting in C; 7.4 Better Living with strace and ltrace; 7.5 Static Code Checkers: lint and Friends; 7.6 Debugging Dynamically Allocated Memory;Chapter 8: USING GDB/DDD/ECLIPSE FOR OTHER LANGUAGES; 8.1 Java; 8.2 Perl; 8.3 Python; 8.4 Debugging SWIG Code; 8.5 Assembly Language;COLOPHON;