0Pricing
C++ Academy · Lektion

gdb und lldb verwenden

Programme schrittweise durchlaufen

gdb und lldb verwenden ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Interaktive Debugger

gdb (GNU) und lldb (LLVM) ermöglichen es Ihnen, ein laufendes Programm anzuhalten, Variablen zu untersuchen und den Code Zeile für Zeile durchzugehen. Ihre Befehle sind ähnlich.

Mit Debug-Informationen kompilieren

Erstellen Sie den Build immer mit -g (und idealerweise -O0), damit der Debugger Maschinencode auf Ihren Quellcode zurückführen kann.

g++ -g -O0 main.cpp -o app
# then
gdb ./app

Breakpoints setzen

Ein Breakpoint hält die Ausführung an einer ausgewählten Stelle an.

  • gdb: break main.cpp:10 oder break myFunc
  • lldb: breakpoint set --file main.cpp --line 10 oder b myFunc

Das Programm ausführen

Starten Sie die Ausführung mit run (oder r). Das Programm hält am ersten Breakpoint an, den es erreicht, und kann dann untersucht werden.

Code schrittweise durchgehen

Zentrale Schrittbefehle (in gdb und lldb gleich benannt):

  • next / n: eine Zeile ausführen und Aufrufe überspringen
  • step / s: in einen Aufruf hineinschrittweise ausführen
  • finish: ausführen, bis die aktuelle Funktion zurückkehrt
  • continue / c: bis zum nächsten Breakpoint fortsetzen

Variablen untersuchen

Geben Sie Werte aus, um den Programmzustand zu verstehen.

  • gdb: print x, print arr[2]
  • lldb: frame variable oder p x

Ziel einer Beispiel-Debugging-Sitzung

Betrachten Sie dieses Programm; Sie könnten an der Schleife einen Breakpoint setzen und in jeder Iteration sum ausgeben.

#include <iostream>

int main() {
    int sum = 0;
    for (int i = 1; i <= 3; ++i) {
        sum += i;
    }
    std::cout << sum << "\n";
    return 0;
}

Der Call-Stack

Wenn das Programm angehalten ist, zeigt backtrace (gdb) oder bt (lldb) die Kette der Funktionsaufrufe. Mit frame N wechseln Sie zu einer aufrufenden Funktion und untersuchen deren lokale Variablen.

Watchpoints

Ein Watchpoint hält das Programm an, wenn sich eine Variable ändert, und hilft dabei herauszufinden, wo unerwartete Änderungen stattfinden.

  • gdb: watch counter
  • lldb: watchpoint set variable counter

Bedingte Breakpoints

Halten Sie nur an, wenn eine Bedingung erfüllt ist, und vermeiden Sie manuelles schrittweises Ausführen.

  • gdb: break loop.cpp:5 if i == 99
  • lldb: breakpoint set --line 5 --condition "i == 99"

Abstürze debuggen

Führen Sie das abstürzende Programm unter dem Debugger aus. Bei einem Segmentation Fault hält es an der fehlerhaften Zeile an. Verwenden Sie anschließend bt, um zu sehen, wie Sie dorthin gelangt sind. Sie können auch nachträglich einen Core-Dump analysieren.

Schnelltest

Rufen Sie sich die Schrittbefehle in Erinnerung.

Zusammenfassung

Sie haben interaktives Debugging kennengelernt.

  • Erstellen Sie den Build mit -g -O0
  • Setzen Sie Breakpoints, verwenden Sie run und anschließend next/step/finish
  • Untersuchen Sie den Zustand mit print/frame variable und backtrace
  • Watchpoints und bedingte Breakpoints helfen bei schwer aufzuspürenden Fehlern

Häufig gestellte Fragen

Ist die Lektion „gdb und lldb verwenden“ kostenlos?

Ja — der vollständige Text von „gdb und lldb verwenden“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „gdb und lldb verwenden“?

Programme schrittweise durchlaufen Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C++ Academy zu starten?

Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „gdb und lldb verwenden“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?

Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. gdb und lldb verwenden
  2. AddressSanitizer
  3. UBSan und TSan
  4. Valgrind-Grundlagen
← Zurück zu C++ Academy