Dies ist eine alte Version des Dokuments!


Crashcourse gdb

Tutorial

Ein guter Einstieg bietet auch dieses 20 Minuten Youtube Video

Vorbereitung

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 ö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 ..)

Weitere nützliche Befehle

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

SIGINT ohne 'Break' vom gdb

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