How Debuggers Work: Algorithms, Data Structures, and ArchitectureA total guide to debuggers: what they do, how they work, and how to use them to produce better programs "Debuggers are the magnifying glass, the microscope, the logic analyzer, the profiler, and the browser with which a program can be examined."-Jonathan B. Rosenberg Debuggers are an indispensable tool in the development process. In fact, during the course of the average software project, more hours are spent debugging software than in compiling code. Yet, not many programmers really know how to constructively interpret the results they get back from debuggers. And even fewer know what makes these complex suites of algorithms and data structures tick. Now in this extremely accessible guide, Jonathan B. Rosenberg demystifies debuggers for programmers and shows them how to make better use of debuggers in their next projects. Taking a hands-on, problem-solving approach to a complex subject, Rosenberg explains how debuggers work and why programmers use them. Most importantly, he provides practical discussions of debugger algorithms and procedures for their use, accompanied by many practical examples. The author also discusses a wide variety of systems applications, from Microsoft's Win32 debug API to a large parallel architecture. Visit our Web site at: http://www.wiley.com/compbooks/ |
Contents
INTRODUCTION | 1 |
DEBUGGER ARCHITECTURE | 21 |
HARDWARE DEBUGGER FACILITIES | 39 |
Copyright | |
11 other sections not shown
Other editions - View all
Common terms and phrases
actually algorithm allow architecture array basic behavior branch delay slot breakpoint breakpoint instruction call stack cause child process compiler compiler optimizations computation created data structures debug API debug event debug information debuggee process debugger's debugging support decode detect disassemble eliminated environment example fault frame pointer function call GUI applications GUI debugger hardware implement input inspect interactions internal breakpoint interpreter Java linker loop mapping memory location methods Module load multithreaded needs notification object occur operating system optimizations physical breakpoint Popup problems procedure processor program counter ptrace record register allocation remote RemoteField RemoteValue return address RISC routine run-time saved scope setting a breakpoint SIMD single-step Smalltalk source code source statement source view special breakpoint specified stack frame step String symbol table target thread tion tool TOOLHELP trace typically UNIX user interface watchpoint windows messages WINWORD.EXE hidden