Comment entrer ou sur une fonction dans GDB

Comment entrer ou sur une fonction dans GDB
Le débogage est une compétence fondamentale que tout programmeur auto-identifié devrait avoir. Il nous permet de visualiser, d'examiner et de corriger les erreurs dans notre code. Un puissant outil de débogage est le débogueur GNU, GDB pour faire court.

Ce guide envisagera de travailler avec GDB pour entrer ou sur une fonction dans notre code.

Utilisation de base du GDB

Pour illustrer cela, vous pouvez utiliser votre code ou utiliser l'échantillon fourni ci-dessous. Dans l'exemple ci-dessous, la fonction Loop ME contient une boucle que nous examinerons avec GDB.

#inclure
void loopme ()

pour (int i = 0; i<5;i++)
printf ("i est% d \ n", i);


int main()
int a = 10;
a + = 10;
printf ("La valeur de a est% d", a);
loopme ();
retour 0;

Compilez le code avec -g comme:

$ gcc -g boucle.boucle c -o

Ensuite, lancez le programme avec GDB comme:

$ GDB LOOP

Une fois dans GDB, nous pouvons exécuter le programme en utilisant la commande RUN ou R. Vous pouvez arrêter le programme pendant qu'il s'exécute en utilisant la touche Ctrl + C.

Définissons un point d'arrêt à la fonction principale pour arrêter l'exécution à ce moment-là. Dans l'exemple ci-dessus, nous nous arrêtons à la ligne 10.

$ (gdb) Break Main

Point d'arrêt 1 à 0x555555555171: boucle de fichier.C, ligne 10.

Pour parcourir votre programme ligne par ligne, vous pouvez utiliser la commande suivante ou n.

$ (gdb) suivant
$ (gdb) n

Une fois que vous arrivez à la fonction sur laquelle vous souhaitez travailler, dans l'exemple ci-dessus, la fonction LoopMe (), vous pouvez le passer à l'aide de la commande suivante.

Cela sautera la fonction et ira directement retourner 0 comme:

Vous pouvez également entrer dans la fonction et travailler dessus en utilisant la commande Step ou S. Par exemple, pour entrer la fonction loopme (), nous pouvons faire:

$ (gdb) étape

La commande entrera dans la fonction comme:

Maintenant que nous sommes à l'intérieur de la fonction LoopMe (), nous pouvons le passer en ligne par ligne en utilisant la commande suivante:

Comme vous pouvez le voir, nous passons à travers la boucle et voyons comment la boucle s'exécute.

Conclusion

Dans ce tutoriel rapide, nous avons discuté du processus d'utilisation de GDB pour passer ou entrer dans une fonction lors de la débogage.