Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.
Linux

Déboguer un programme C ou C++ sur Linux à l’aide de gdb

Le processus normal de développement de programmes informatiques ressemble à ceci : écrivez du code, compilez le code, exécutez le programme. Si le programme ne fonctionne pas comme prévu, vous revenez au code pour rechercher les erreurs (bugs) et répétez le cycle.

Selon la complexité du programme et la nature des bogues, il y a des moments où vous pouvez faire avec une aide supplémentaire pour traquer les erreurs. C’est ce que fait un « débogueur ». Il vous permet d’examiner un programme informatique pendant son exécution. Vous pouvez voir les valeurs des différentes variables, vous pouvez examiner le contenu de la mémoire et vous pouvez arrêter le programme à un point spécifié et parcourir le code une ligne à la fois.

Le débogueur principal sous Linux est le débogueur GNU (gdb). Il est peut-être déjà installé sur votre système (ou une version allégée appelée gdb-minimal), mais pour être sûr, tapez la commande suivante dans un terminal :

Pour utiliser le débogueur, vous devez dire au compilateur d’inclure les informations de débogage dans le binaire. Créez un fichier appelé « hello10.c » à l’aide de nano :

Copiez et collez le code suivant :

L’indicateur « -g » indique au compilateur de produire des informations de débogage, donc pour compiler le programme, utilisez :

Pour commencer à déboguer le type de programme :

À ce stade, si vous commencez simplement à exécuter le programme (à l’aide de la commande « run »), le programme s’exécutera et se terminera avant que vous n’ayez la possibilité de faire quoi que ce soit. Pour arrêter cela, vous devez créer un « point d’arrêt » qui arrêtera le programme à un point spécifié. Le moyen le plus simple de le faire est de dire au débogueur de s’arrêter dans la fonction « main() »:

Lancez maintenant le programme :

Le débogueur s’est arrêté à la première ligne de code exécutable, par exemple la boucle « for ». Pour passer à la ligne suivante, tapez « suivant » ou « n » pour faire court. Continuez à utiliser « suivant » pour répéter plusieurs fois le tour de la boucle :

gdb-break-suivant

Pour inspecter la valeur d’une variable, utilisez la commande « print ». Dans notre exemple de programme, nous pouvons examiner le contenu de la variable « i »:

Répétez autour de la boucle et quelques fois de plus et voyez comment « i » change :

gdb-next-print-i

Dans l’exemple ci-dessus, « i » a atteint la valeur de 4. La boucle continuera tant que « i » est inférieur à 10. Vous pouvez modifier la valeur d’une variable en utilisant « set var ». Tapez ce qui suit dans gdb pour définir « i » sur 10.

Psssssst :  Comment créer un dossier de fichiers dans Ubuntu ?

gdb-set-var

Vous devrez peut-être faire un autre « suivant » (selon l’endroit où le programme a été arrêté lorsque vous définissez « i » sur 10), mais lorsque la ligne de boucle « for » est exécutée ensuite, la boucle se terminera, car « i » n’est pas plus de moins de 10.

La commande « next » n’explore pas les fonctions mais la fonction est exécutée et le débogueur s’arrête à nouveau à la ligne suivante après la fonction. Si vous souhaitez accéder à une fonction, utilisez la commande « step », ou « s » pour faire court.

Une autre façon de déboguer votre programme est de définir une surveillance sur une variable. Cela arrête le programme chaque fois que la variable change. Redémarrez le programme à nouveau en tapant « exécuter ». Le programme étant déjà en cours d’exécution, le débogueur vous demandera si vous souhaitez le redémarrer depuis le début.

Le programme s’arrêtera en main (car nous n’avons pas supprimé le point d’arrêt). Maintenant, réglez une montre sur « i »:

La commande « continuer » redémarre le programme jusqu’à la prochaine condition de point d’arrêt. Dans ce cas, il fonctionnera à nouveau jusqu’à ce que la variable « i » change (à cause de la montre).

Psssssst :  Comment définissez-vous dimension XML pour chaque taille d'écran différente dans Android ?

gdb-watch-i

Pour arrêter le débogage, utilisez simplement la commande « quit ».

Si vous voulez en savoir plus sur gdb, alors un bon point de départ est la documentation GDB. Si vous rencontrez des problèmes avec les exemples donnés ci-dessus, veuillez utiliser la section commentaires ci-dessous et nous verrons si nous pouvons vous aider.

Cet article est-il utile ? Oui Non

Bouton retour en haut de la page

Adblock détecté

Veuillez désactiver votre bloqueur de publicités pour pouvoir visualiser le contenu de la page. Pour un site indépendant avec du contenu gratuit, c’est une question de vie ou de mort d’avoir de la publicité. Merci de votre compréhension! Merci