Le débogueur GNU

Bien que faire

Sommaire

automatise le processus de construction d'un programme Linux, cette partie de la programmation est le moindre de vos soucis quand un programme ne fonctionne pas correctement ou quand un programme se ferme soudainement avec un message d'erreur. Vous avez besoin d'un débogueur pour trouver la cause d'erreurs de programme. Linux inclut gdb - le débogueur GNU polyvalent avec une interface de ligne de commande.

Comme tout débogueur, gdb vous permet d'effectuer des tâches de débogage typiques, telles que les suivantes:

  • Définissez un point d'arrêt afin que le programme arrête à une ligne spécifiée.

  • Lire les valeurs des variables dans le programme.

  • Étape à travers le programme une ligne à la fois.

  • Modifier des variables dans une tentative pour corriger des erreurs.

La gdb débogueur peut déboguer des programmes C et C ++.

Préparation pour déboguer un programme

Si vous voulez déboguer un programme en utilisant gdb, vous devez vous assurer que le compilateur génère et lieux des informations de débogage dans l'exécutable.

Les informations de débogage contient les noms des variables dans votre programme et le mappage des adresses dans le fichier exécutable de lignes de code dans le fichier source. gdb besoin de cette information pour remplir ses fonctions, telles que l'arrêt après l'exécution d'une ligne de code spécifiée source.

Pour vous assurer que l'exécutable est correctement préparé pour le débogage, utilisez le -g l'option avec GCC. Vous pouvez effectuer cette tâche en définissant la variable CFLAGS dans le makefile comme

CFLAGS = -g

Gdb Courir

La façon la plus commune pour déboguer un programme consiste à exécuter gdb en utilisant la commande suivante:


gdb progname

progname est le nom du fichier exécutable du programme. Après progname pistes, gdb affiche le message suivant et vous invite pour une commande:

GNU gdb (BDG) 7.5.91.20130417-cvs-ubuntuCopyright (c) 2,013 Free Software Foundation, Inc.License GPLv3 +: GNU GPL version 3 ou tard ___This est un logiciel libre: vous êtes libre de le modifier et de le redistribuer it.There a AUCUNE GARANTIE , dans la mesure permise par la loi. Type "show copie" et "show garantie" pour details.This GDB a été configuré comme - .Pour les instructions de rapport de bogues "i686 linux-gnu", s'il vous plaît voir: http: //gnu.org/software/gdb/bugs/. (gdb)

Vous pouvez taper gdb commandes au (gdb) Invite. Une commande utile, Aidez-moi, affiche une liste de commandes, comme la prochaine liste indique:

(gdb) Aidez-moiListe des classes de commandes: - alias alias des autres commandsbreakpoints - Making arrêt du programme à un certain pointsdata - Datafiles examen - Spécification et en examinant filesinternals - commandsobscure d'entretien - featuresrunning Obscure - Exécution de l'programstack - L'examen de la stackstatus - - facilitiestracepoints de soutien - - Statut inquiriessupport traçage de l'exécution du programme sans arrêter la programuser défini - commandsType défini par l'utilisateur "aide" suivi d'un nom de classe pour une liste de commandes dans ce class.Type "aider tous» pour la liste Tout d'commands.Type "help" suivi du nom de commande pour le nom complet des abréviations documentation.Command sont autorisés si univoque. (gdb)

Quitter gdb, type q puis appuyez sur Entrée.