Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
GDB
GDB (GNU Debugger) ist ein weit verbreiteter Debugger für diverse Sprachen wie C, C++ und Java. GDB ist ein Kommandozeilen-Programm und lässt sich somit relativ einfach bedienen.
Wichtige Kommandos
Kommando | Beschreibung |
---|---|
file | Programm angeben zum debuggen |
watch | Variable beobachten |
break | Breakpunkt setzen |
run | Programm starten |
continue | Programm fortfahren |
step | nächsten Schritt ausführen (auch in Subroutinen) |
next | nächsten Schtitt ausführen (Subroutinen überspringen) |
print | Variableninhalt dezimal ausgeben |
print/x | Variableninhalt hexadezimal ausgeben |
finish | Programm laufen lassen bis Funktion beendet ist |
delete | Breakpunkt löschen |
info breakpoints | Informationen zu den gesetzten Breakpoints |
Beispiel
Programmcode
Compiler-Option
Um das obige main.c
zu kompilieren könnte man gcc -o main.o main.c
verwenden. Um aber das Debugging zu ermöglichen muss die Option -g
hinzugefügt werden.
gcc -g -o debug.o main.c
GDB starten
Um das kompilierte Programm (debug.o
) zu debuggen, kann einfach GDB gestartet werden in der Kommandozeile.
[user@machine ]$ gdb
Datei laden
Ist GDB gestartet kann die datei debug.o
angegeben werden zum debuggen.
(gdb) file debug.o Reading symbols from debug.o...done.
Sollte eine Fehlermeldung auftreten wie die folgende
(gdb) file main.o Reading symbols from main.o...(no debugging symbols found)...done.
sollte überprüft werden, ob die Compiler-Option -d
gesetzt wurde beim kompilieren.
Breakpoint setzen
Um einen Breakpunkt zu setzten muss lediglich der Name der Quelldatei und die Zeilennummer angegeben werden. Das folgede Beispiel setzt einen Breakpunkt im main.c
auf Zeile 5 und 14
(gdb) break main.c:5 Breakpoint 1 at 0x400515: file main.c, line 5. (gdb) break main.c:14 Breakpoint 2 at 0x400536: file main.c, line 14.
- type:
- topic
- beginner:
- ninux