Debugger
Ein Debugger (von engl. bug) ist ein Werkzeug zum Auffinden, Diagnostizieren und Beheben von Fehlern in Hardware und Software. Ein Debugger ermöglicht in der Regel eine Ablaufverfolgung des zu untersuchenden Programmes in einzelnen Schritten oder zwischen definierten Haltepunkten (Breakpoints). Ist ein Programm auf diese Weise angehalten, kann der Entwickler die Inhalte von Prozessorregistern und Variablen einsehen, verändern oder sich den Verlauf der Funktionsaufrufe bis zum Breakpoint ansehen (callstack). Moderne Debugger (bei kompilierten Sprachen, z.B. C/C++) haben die Möglichkeit, Änderungen am Quelltext on thy fly zu übersetzen und mit diesen Änderungen die Programmausführung fortzusetzen. Diese Technik wird auch als just in time debugging bezeichnet. Ein Debugger ist oft Bestandteil einer Programm-Entwicklungsumgebung.Bei der Fehlersuche mit einem Debugger spricht man auch von Debuggen. Der Wortbestandteil Bug für "Programmierfehler" wurde von der Computerpionierin Grace Hopper geprägt. Mit Bugfix (engl. fix für reparieren, ausbessern) wird die Behebung eines Programmfehlers bezeichnet.
Zur Fehlersuche verwendete Werkzeuge
*Software:
*gdb ? der GNU-Debugger, ein Unix-Werkzeug
*ddd ? eine grafische Oberfläche zum gdb
*cgdb - Ein curses basiertes Frontend zu gdb
*ltrace ? zeigt dynamische Bibliotheksaufrufe an
*strace (Linux), truss (Solaris) ? zeigt Systemaufrufe an
*valgrind ? zum Debuggen und Profilen von x86-Linux-Programmen
*SoftICE ? Leistungsfähiger maschinennaher Debugger für x86-Systeme
*IDA ? Disassembler für viele Rechner-Architekturen; enthält auch einen Debugger für die x86-Architektur.
*OllyDbg ? Debugger mit GUI.
*W32DASM ? Debugger und Disassembler.
*Hardware:
*JTAG
*Logic-Analyzer
*ICE ? In-Circuit-Emulator
Siehe auch
Softwaretest
Delta Debugging
Literatur
* David J. Agans: Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems, AMACOM, 2002. ISBN 0-8144-7168-4
* Ann R. Ford, Toby J. Teorey: Practical Debugging in C++, Prentice Hall, 2002. ISBN 0-13-065394-2
* Matthew A. Telles, Yuan Hsieh, Matt Telles: The Science of Debugging, The Coriolis Group, 2001. ISBN 1-57610-917-8
Andreas Zeller: Why Programs Fail: A Guide to Systematic Debugging, Dpunkt Verlag, 2005. ISBN 3-89864-279-8
Weblinks
• Why Programs Fail - Webseite zum Buch Why Programs Fail von A. Zeller, mit Programmbeispielen und Lehrmaterial (600 Folien!)

