Debugger und Core Dumps
Kurz: Ein Debugger lässt ein Programm Schritt für Schritt laufen, damit man Variablen ansehen kann. Ein Core Dump ist ein Abbild des Speichers eines abgestürzten Programms zur späteren Analyse.
Genauer: Mit Haltepunkten (Breakpoints) hält der Debugger das Programm an einer Zeile an. Dann kann man Werte lesen, Aufrufstapel ansehen und Zeile für Zeile weitergehen. Core Dumps ermöglichen das auch nach dem Absturz auf einem anderen Rechner.
Im Detail
- Befehle (gdb):
break datei.c:42,run,next,step,print x,backtrace. - Bedingte Haltepunkte: Anhalten nur, wenn zum Beispiel
i == 1000gilt. - Watchpoints: Anhalten, sobald sich eine Variable ändert.
- Core Dump: Unter Linux mit
ulimit -c unlimitedaktivieren, danngdb programm core. - Debug-Symbole: Mit
-gkompilieren, damit Namen und Zeilen sichtbar sind. - Andere Sprachen: IDEs und Browser-Entwicklerwerkzeuge bieten dieselben Funktionen grafisch.
Siehe auch: Profiling und Flame Graphs