GDB (GNU Debugger) ist der Standard-Debugger auf Linux für C, C++, Rust, Go und weitere Sprachen. Voraussetzung sind Debug-Informationen: Programme mit gcc -g oder clang -g übersetzen.

Start

gdb ./programm                # Programm öffnen
gdb ./programm core           # Core-Dump analysieren
gdb -p 1234                   # an laufenden Prozess (PID) anhängen

Kernkommandos

  • break main bzw. b file.c:42: Haltepunkt setzen
  • run (r): Programm starten, run <argumente> mit Parametern
  • next (n): nächste Zeile (ohne in Funktionen zu springen), step (s): in Funktion rein
  • continue (c): bis zum nächsten Haltepunkt weiterlaufen, finish: Funktion zu Ende führen
  • backtrace (bt): Aufrufstapel anzeigen — der erste Einstieg bei Abstürzen
  • print (p): Variablenwert anzeigen, z. B. p x, p/x ptr hexadezimal
  • info registers: CPU-Register, info breakpoints: gesetzte Haltepunkte
  • list: Quellcode am aktuellen Punkt, watch var: Watchpoint auf Variable
  • quit (q): GDB beenden

Batch und TUI

gdb -batch -ex bt -ex "info registers" ./programm core
gdb -tui ./programm           # Text-UI mit Quellcode + Assembler

Verwandte Grundlagen: Compiler, GCC-Befehle, Clang-Befehle, C/C++-Befehle, Assembly-Befehle.