Utiliser gdb et lldb
Parcourir les programmes pas à pas
Utiliser gdb et lldb est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.
Débogueurs interactifs
gdb (GNU) et lldb (LLVM) vous permettent de mettre en pause un programme en cours d'exécution, d'inspecter les variables et de parcourir le code ligne par ligne. Leurs commandes sont similaires.
Compiler avec les informations de débogage
Construisez toujours le programme avec -g (et idéalement -O0) afin que le débogueur puisse faire correspondre le code machine à votre code source.
g++ -g -O0 main.cpp -o app
# then
gdb ./appDéfinir des points d'arrêt
Un point d'arrêt suspend l'exécution à un emplacement choisi.
- gdb :
break main.cpp:10oubreak myFunc - lldb :
breakpoint set --file main.cpp --line 10oub myFunc
Exécuter le programme
Démarrez l'exécution avec run (ou r). Le programme s'arrête au premier point d'arrêt rencontré, prêt pour l'inspection.
Parcourir le code pas à pas
Commandes essentielles pour avancer pas à pas (avec les mêmes noms dans gdb et lldb) :
next/n: exécute une ligne en passant par-dessus les appelsstep/s: entre dans un appelfinish: exécute le code jusqu'au retour de la fonction actuellecontinue/c: reprend l'exécution jusqu'au prochain point d'arrêt
Inspecter les variables
Affichez les valeurs pour comprendre l'état du programme.
- gdb :
print x,print arr[2] - lldb :
frame variableoup x
Cible d'une session d'exemple
Considérez ce programme ; vous pourriez placer un point d'arrêt dans la boucle et afficher sum à chaque itération.
#include <iostream>
int main() {
int sum = 0;
for (int i = 1; i <= 3; ++i) {
sum += i;
}
std::cout << sum << "\n";
return 0;
}La pile des appels
À l'arrêt, backtrace (gdb) ou bt (lldb) affiche la chaîne des appels de fonctions. Utilisez frame N pour passer à l'appelant et inspecter ses variables locales.
Points d'observation
Un point d'observation arrête le programme lorsqu'une variable change, ce qui aide à trouver où se produisent les modifications inattendues.
- gdb :
watch counter - lldb :
watchpoint set variable counter
Points d'arrêt conditionnels
Arrêtez-vous uniquement lorsqu'une condition est satisfaite, afin d'éviter l'avancement manuel pas à pas.
- gdb :
break loop.cpp:5 if i == 99 - lldb :
breakpoint set --line 5 --condition "i == 99"
Déboguer les plantages
Exécutez le programme qui plante sous le débogueur ; lors d'une violation de segmentation, il s'arrête à la ligne fautive. Utilisez ensuite bt pour voir comment vous y êtes arrivé. Vous pouvez également analyser un fichier mémoire après coup.
Vérification rapide
Rappelez-vous les commandes d'avancement pas à pas.
Récapitulatif
Vous avez découvert le débogage interactif.
- Construisez le programme avec
-g -O0 - Définissez des points d'arrêt, utilisez
run, puisnext/step/finish - Inspectez le programme avec
print/frame variableetbacktrace - Les points d'observation et les points d'arrêt conditionnels ciblent les bogues difficiles
Questions Fréquemment Posées
La leçon « Utiliser gdb et lldb » est-elle gratuite ?
Oui — le texte complet de « Utiliser gdb et lldb » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Utiliser gdb et lldb » ?
Parcourir les programmes pas à pas Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C++ Academy ?
Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Utiliser gdb et lldb » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?
Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Utiliser gdb et lldb
- AddressSanitizer
- UBSan et TSan
- Les bases de Valgrind