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 mainbzw.b file.c:42: Haltepunkt setzenrun(r): Programm starten,run <argumente>mit Parameternnext(n): nächste Zeile (ohne in Funktionen zu springen),step(s): in Funktion reincontinue(c): bis zum nächsten Haltepunkt weiterlaufen,finish: Funktion zu Ende führenbacktrace(bt): Aufrufstapel anzeigen — der erste Einstieg bei Abstürzenprint(p): Variablenwert anzeigen, z. B.p x,p/x ptrhexadezimalinfo registers: CPU-Register,info breakpoints: gesetzte Haltepunktelist: Quellcode am aktuellen Punkt,watch var: Watchpoint auf Variablequit(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.