Lecture 8: Debugging Flashcards
(14 cards)
Welcher Compiler-Schalter schreibt Debug-Symbole in die Binärdatei?
-g
Welcher Schalter schaltet Optimierungen ab, damit Maschinencode dem Quellcode ähnlicher bleibt?
-O0 (oder das mildere -Og)
Befehl, um das Programm innerhalb von gdb zu starten?
run
Breakpoint per Zeilennummer/Funktionsname setzen?
b bzw. `break <ZlNr
Variable während des Stops inspizieren?
p bzw. print <var></var>
Speicher an Adresse inspizieren (Hex-Dump etc.)?
x <addr> und Varianten wie x/16x</addr>
Einzelschritt in Funktionen hinein?
s / step
Einzelschritt über Funktionsaufrufe hinweg?
n / next
Bis zum nächsten Breakpoint weiterlaufen lassen?
c / continue
Aktuelle Funktion fertig ausführen und zurückkehren?
finish
Alle Breakpoints auflisten?
info break
Breakpoint entfernen?
delete <Nr></Nr>
Breakpoint temporär deaktivieren/aktivieren?
disable <Nr> / enable <Nr></Nr></Nr>
Warum sollte man -g und -O0 gemeinsam nutzen?
Ohne Optimierung bleiben Variablen/Zeilen weitgehend erhalten, was das Debugging präziser macht.