GDB signifie GNU Project Debugger et est un puissant outil de débogage pour C (avec d'autres langages comme C++). Il vous aide à fouiller dans vos programmes C pendant leur exécution et vous permet également de voir ce qui se passe exactement lorsque votre programme plante. GDB fonctionne sur des fichiers exécutables qui sont des fichiers binaires produits par le processus de compilation.
À des fins de démonstration, l'exemple ci-dessous est exécuté sur une machine Linux avec les spécifications ci-dessous.
uname -a>

uname -a
Apprenons en faisant : –
Démarrer GDB
Accédez à votre invite de commande Linux et tapez gdb.
gdb>
gdb
enregistrer la vidéo youtube vlc
L'invite d'ouverture de Gdb vous permet de savoir qu'elle est prête à recevoir les commandes. Pour quitter GDB, tapez quit ou q.

Quitter
Compiler le code
Vous trouverez ci-dessous un programme qui montre un comportement indéfini lorsqu'il est compilé à l'aide de C99.
Note: Si un objet doté d'une durée de stockage automatique n'est pas initialisé explicitement, sa valeur est indéterminée, où la valeur indéterminée est soit une valeur non spécifiée, soit une représentation d'interruption.
Compilez maintenant le code. (ici test.c). g drapeau signifie que vous pouvez voir les noms propres des variables et des fonctions dans vos cadres de pile, obtenir les numéros de ligne et voir la source lorsque vous vous déplacez dans l'exécutable. -std=indicateur C99 implique d'utiliser la norme C99 pour compiler le code. -o drapeau écrit la sortie de construction dans un fichier de sortie.
gcc -std=c99 -g -o test test.C>
gcc -std=c99 -g -o test test.C
Exécutez GDB avec l'exécutable généré
Tapez la commande suivante pour démarrer GDB avec l'exécutable compilé.
gdb ./test>
gdb./test
Commandes GDB utiles :
Voici quelques commandes utiles pour démarrer avec GDB.
Commande | Description |
---|---|
courir ou r | Exécute le programme du début à la fin. |
pause ou b | Définit un point d'arrêt sur une ligne particulière. |
désactiver | Désactive un point d'arrêt |
activer | Active un point d'arrêt désactivé. |
suivant ou n | Exécute la ligne de code suivante sans plonger dans les fonctions. |
étape | Passe à l'instruction suivante et plonge dans la fonction. |
liste ou l | Affiche le code. |
imprimer ou p | Affiche la valeur d'une variable. |
quitter ou q | Quitte GDB. |
clair | Efface tous les points d'arrêt. |
continuer | Continue l'exécution normale |
Afficher le code
Maintenant, tapez l à l'invite gdb pour afficher le code.

Afficher le code
Définir un point d'arrêt
Introduisons un point d'arrêt, disons la ligne 5.

Définir un point d'arrêt
Si vous souhaitez placer un point d'arrêt sur différentes lignes, vous pouvez taper b numéro de ligne .Par défaut, la liste ou l'affiche uniquement les 10 premières lignes.
Afficher les points d'arrêt
Pour voir les points d'arrêt, tapez info b.

Afficher les points d'arrêt
Désactiver un point d'arrêt
Après avoir fait ce qui précède, disons que vous avez changé d’avis et que vous souhaitez revenir en arrière. Tapez désactiver b.

Désactiver un point d'arrêt
Réactiver un point d'arrêt désactivé
Comme indiqué dans le cercle bleu, Enb devient n pour désactivé. 9. Pour réactiver le point d'arrêt récemment désactivé. Tapez activer b.

Réactiver un point d'arrêt désactivé
Exécutez le code
Exécutez le code en tapant run ou r. Si vous n'avez défini aucun point d'arrêt, la commande run exécutera simplement le programme complet.

Exécutez le code
gimp changer de couleur
Imprimer les valeurs des variables
Pour voir la valeur de la variable, tapez print Nom de variable ou p Nom de variable .

Imprimer les valeurs des variables
Ce qui précède montre les valeurs stockées en x au moment de l'exécution.
Modifier les valeurs des variables
Pour modifier la valeur de la variable dans gdb et continuer l'exécution avec la valeur modifiée, tapez set Nom de variable .
Sortie de débogage
La capture d'écran ci-dessous montre les valeurs des variables à partir desquelles il est tout à fait compréhensible la raison pour laquelle nous avons obtenu une valeur poubelle en sortie. A chaque exécution de . /test nous recevrons une sortie différente.
Exercice : essayez d'utiliser set x = 0 dans gdb lors de la première exécution et voyez le résultat de c.
Sortie de débogage
GDB offre de nombreuses autres façons de déboguer et de comprendre votre code, comme examiner la pile, la mémoire, les threads, manipuler le programme, etc. J'espère que l'exemple ci-dessus vous aidera à démarrer avec gdb.
Conclusion
Dans cet article, nous avons discuté de GDB (GNU Debugger), qui est un outil puissant sous Linux utilisé pour déboguer les programmes C. Nous avons abordé certaines des étapes suivantes afin de pouvoir compiler votre code avec les informations de débogage, exécuter GDB, définir un point d'arrêt, examiner les variables et analyser le comportement du programme. Nous avons également discuté des fonctionnalités de GDB, telles que l'examen du code, la gestion des points d'arrêt, la manipulation des variables et le contrôle de l'exécution du programme, qui nous permettent de déboguer et de résoudre efficacement les problèmes.