0Pricing
C++ Academy · Leçon

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 ./app

Définir des points d'arrêt

Un point d'arrêt suspend l'exécution à un emplacement choisi.

  • gdb : break main.cpp:10 ou break myFunc
  • lldb : breakpoint set --file main.cpp --line 10 ou b 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 appels
  • step / s : entre dans un appel
  • finish : exécute le code jusqu'au retour de la fonction actuelle
  • continue / 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 variable ou p 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, puis next/step/finish
  • Inspectez le programme avec print/frame variable et backtrace
  • 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

  1. Utiliser gdb et lldb
  2. AddressSanitizer
  3. UBSan et TSan
  4. Les bases de Valgrind
← Retour à C++ Academy