Dies ist eine alte Version des Dokuments!


GDB

Der GNU Debugger erlaubt einem zu sehen, was in einem Programm passiert, während es ausgeführt wird oder was es gemacht hat als es abgestürzt ist.

Die vier Hauptfunktionen von GDB sind:

  • Programm mit Optionen starten
  • Programm bei bestimmten Bedingungen anhalten
  • Untersuchen was geschehen ist, wenn das Programm angehalten wurde
  • Inhalt des Speichers ändern

Handhabung

GDB ist in vielen IDEs (wie z.B. Eclipse) integriert und wird über das GUI bedient. Alternativ kann GDB auch über die Kommandozeile gestartet werden:

gdb executable_name

Programm starten:

run arg1 arg2 arg3

Ausführung des Programms anhalten:

halt

Programm beenden:

kill

GDB beenden:

quit

Alle GDB Befehle können mit der GDB-Hilfefunktion aufgelistet werden:

help

STABS

STABS (symbol tables) ist das Format in welchem das Program für den Debugger beschrieben wird. Der GCC Compiler kompiliert C-Programme (.c) in Assembler-Programme (.s), welche vom Assembler in Objekt-Dateien (.o) kompiliert werden, die dann vom Linker und anderen Objekt-Dateien zu einem ausführbarem Programm verlinkt werden.

Mit der Option '-g' des GCC Compilers wird in die .s-Dateien zusätzliche Information eingefügt. Diese Information beschreibt Eigenschaften der Source-Datei, wie z.B. Zeilennummern, Typen, Scope der Variable, Funktionsnamen, usw.

Remote Debugging

GDB kann auch Programme debuggen, die nicht lokal ausgeführt werden. Auf dem Target muss aber ein RSP-Server lauften mit dem GDB kommunizieren kann. Die Kommunikation läuft über das Remote Serial Protokoll.