=======================
== Tango Kilo's Blog ==
=======================

Einführung in GDB – C++ Programme unter Linux debuggen

gdb debugging c++ linux entwicklung

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