C++ Academy · Les

gdb en lldb gebruiken

Loop stapsgewijs door programma's

Les 1 van 413 stappen

gdb en lldb gebruiken is een gratis C++ Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject C++ Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus C++ Academy bevat in totaal 4 lessen.

Interactieve debuggers

Met gdb (GNU) en lldb (LLVM) kun je een actief programma pauzeren, variabelen inspecteren en stap voor stap door de code gaan. Hun commando's lijken op elkaar.

Compileren met foutopsporingsinformatie

Bouw altijd met -g (en idealiter -O0), zodat de debugger machinecode aan je broncode kan koppelen.

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

Onderbrekingspunten instellen

Een onderbrekingspunt pauzeert de uitvoering op een gekozen locatie.

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

Het programma uitvoeren

Start de uitvoering met run (of r). Het programma stopt bij het eerste onderbrekingspunt dat het tegenkomt en is dan klaar voor inspectie.

Stap voor stap door de code gaan

Belangrijkste stapcommando's (met dezelfde namen in gdb en lldb):

  • next / n: voer één regel uit en stap over aanroepen heen
  • step / s: ga een aanroep binnen
  • finish: voer uit totdat de huidige functie terugkeert
  • continue / c: hervat de uitvoering tot het volgende onderbrekingspunt

Variabelen inspecteren

Druk waarden af om de toestand van het programma te begrijpen.

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

Doel van een voorbeeldsessie

Bekijk dit programma; je kunt bij de lus een onderbrekingspunt instellen en bij elke iteratie sum afdrukken.

#include <iostream>

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

De aanroepstack

Wanneer het programma is gestopt, toont backtrace (gdb) of bt (lldb) de keten van functieaanroepen. Gebruik frame N om naar een aanroeper te schakelen en de lokale variabelen daarvan te inspecteren.

Bewakingspunten

Een bewakingspunt stopt het programma wanneer een variabele verandert. Zo kun je vinden waar onverwachte wijzigingen plaatsvinden.

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

Voorwaardelijke onderbrekingspunten

Onderbreek de uitvoering alleen wanneer aan een voorwaarde is voldaan, zodat je niet handmatig hoeft te stappen.

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

Crashes opsporen

Voer het crashende programma uit onder de debugger; bij een segmentatiefout stopt het programma op de regel met de fout. Gebruik daarna bt om te zien hoe je daar bent gekomen. Je kunt achteraf ook een core dump analyseren.

Snelle controle

Haal de stapcommando's terug.

Samenvatting

Je hebt interactieve foutopsporing geleerd.

  • Bouw met -g -O0
  • Stel onderbrekingspunten in, gebruik run en daarna next/step/finish
  • Inspecteer met print/frame variable en backtrace
  • Bewakingspunten en voorwaardelijke onderbrekingspunten helpen bij lastige fouten
Gratis beginnen

Leer C++ met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
51
Lessen
203

Veelgestelde vragen

Is de les “gdb en lldb gebruiken” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad C++ Academy, waaronder “gdb en lldb gebruiken”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus C++ Academy bevat in totaal 4 lessen.

Wat leer ik in “gdb en lldb gebruiken”?

Loop stapsgewijs door programma's Je oefent met C++ Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met C++ Academy te beginnen?

Ervaring vooraf is niet nodig. C++ Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “gdb en lldb gebruiken”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over C++ Academy?

Ja. Elke les over C++ Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. gdb en lldb gebruiken
  2. AddressSanitizer
  3. UBSan en TSan
  4. Basisprincipes van Valgrind
← Terug naar C++ Academy