Wann Debugger ?
Debugger wie gdb funktionieren nur für Compilersprachen.
gdb unterstützt die Sprachen C, C++ sowie Ada.
Weitere Sprachen (Fortran, Modula2, Pascal usw.) werden nur teilweise
unterstützt.
Diese Sprachen werden meistens über Translatoren implementiert.
Dabei werden Variablen/Funktionennamen u.U. umbenannt.
Die genauen Variablen/Funktionennamen für weitere Sprachen
(wie z.B. Fortran) lassen sich mit "nm" oder Crossreferenzlistings finden.
Interpretersprachen (z.B. perl oder java) benötigen eigene Debugger.
Warum Debugger ?
Die übliche Debugmethode ist das Einfügen von Printkommandos
in fertige Programme.
Nachteile:
- Gefahr Programme versehentlich zu beschädigen
- Lange "turn around" Zeiten
- Programme können abstürzen, bevor Werte gedruckt
- unendliche Schleifen schwer zu finden
- Coredump kann nicht ausgewertet werden
(wichtig bei Langläufern)
Ein Coredump ist ein File mit dem Speicherinhalt zum Zeitpunkt des Absturzes.
Ein Debugger kann daraus die Absturzstelle und die Variableninhalte
ermitteln.