Einführung in GDB – C++ Programme unter Linux debuggen
Inhaltsverzeichnis
GDB ist der GNU Debugger – ein mächtiges Tool, um C- und C++-Programme unter Linux zu analysieren, zu verstehen und Fehler aufzuspüren. In diesem Beitrag zeige ich dir, wie du GDB schnell und effektiv einsetzen kannst.
Voraussetzungen #
- Ein Linux-System (z.B. Ubuntu, Arch, Fedora)
- G++ oder Clang installiert
- GDB installiert (
sudo apt install gdb) - Ein einfaches C++-Projekt mit Debug-Symbolen
Beispielprojekt #
// datei: main.cpp
#include <iostream>
int rechne(int a, int b) {
return a * b + 1;
}
int main() {
int x = 3;
int y = 4;
int ergebnis = rechne(x, y);
std::cout << "Ergebnis: " << ergebnis << std::endl;
return 0;
}
Kompilieren mit Debug-Symbolen #
g++ -g -O0 -o testprog main.cpp
-g: Debug-Informationen einfügen
-O0: Keine Optimierung (erleichtert das Debugging)
Start von GDB #
gdb ./testprog
Du landest in der GDB-Konsole ((gdb)).
Erste Befehle #
break main # Breakpoint in main setzen
run # Programm starten
next # Nächste Zeile ausführen (ohne in Funktionen zu gehen)
step # In die nächste Funktion springen
print x # Wert von x anzeigen
continue # Weiterlaufen lassen bis zum nächsten Breakpoint
quit # Beenden
Nützliche GDB-Kommandos #
| Befehl | Bedeutung |
|---|---|
| break <func> | Breakpoint in Funktion setzen |
| break <file>:<line> | Breakpoint in bestimmter Datei/Zeile |
| list | Code anzeigen |
| info locals | Lokale Variablen anzeigen |
| backtrace | Aufruf-Stack anzeigen |
| set var x=5 | Variable verändern |
Tipp: .gdbinit-Datei
Du kannst Standardbefehle in ~/.gdbinit vordefinieren:
echo "set print pretty on" >> ~/.gdbinit