gdb en lldb gebruiken
Loop stapsgewijs door programma's
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 ./appOnderbrekingspunten instellen
Een onderbrekingspunt pauzeert de uitvoering op een gekozen locatie.
- gdb:
break main.cpp:10ofbreak myFunc - lldb:
breakpoint set --file main.cpp --line 10ofb 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 heenstep/s: ga een aanroep binnenfinish: voer uit totdat de huidige functie terugkeertcontinue/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 variableofp 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
runen daarnanext/step/finish - Inspecteer met
print/frame variableenbacktrace - Bewakingspunten en voorwaardelijke onderbrekingspunten helpen bij lastige fouten
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
- gdb en lldb gebruiken
- AddressSanitizer
- UBSan en TSan
- Basisprincipes van Valgrind