Dies ist eine alte Version des Dokuments!
Ein guter Einstieg bietet auch dieses 20 Minuten Youtube Video
Damit eine Applikation mit dem gdb debugged werden kann, muss es mit Debug Symbolen kompiliert werden.
CMAKE:
CMAKE_BUILD_TYPE Release
gcc / g++
gcc -g hello.c
g++ -g hello.c
gdb öffnen:
gdb –args <executable_name> <arg1> <arg2> <arg3>
oder ohne Argumente:
gdb <executable_name>
Um die Applikation mit Root Rechten zu starten, muss der gdb ebenfalls mit Root Rechten gestartet werden (sudo gdb ..
)
Befehl | Bedeutung |
---|---|
run | Startet die Applikation im gdb |
kill | Bricht die Applikation ab |
quit | beendet die Applikation |
help | |
list | Zeigt den Sourcecode an |
b <18> | Breakpoint @ Zeile 18 |
b if x==1 | Breakpoint mit Bedingung |
info locals | Alle Informationen über lokale Variablen |
set var <variablenname> = <value> | Variable setzen |
backtrace | backtrace z.B. bei Segfault |
attach <PID> | den gdb an eine laufende Applikation anhängen |
Ctrl+c
sendet SIGINT
an die Applikation.
Sobald das geschieht, pausiert der gdb
Dies kann aber verhinder werden.
Befehl | Bedeutung |
---|---|
info signals | Zeigt das aktuelle Verhalten bei diversen Signalen an |
handle 2 nostop | gdb pausiert nicht mehr bei einem Interrupt Signal |