Einführung in GDB – C++ Programme unter Linux debuggen
gdb debugging c++ linux entwicklungGDB 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