Scroll to navigation

GDB(1) Outils GNU GDB(1)

NOM

gdb - Le débogueur GNU

SYNOPSIS

[-help] [-nx] [-q] [-batch] [-cd=rép] [-f] [-b bps] [-tty=périphérique] [-s fich_symb.RB ] [-e prog.RB ] [-se prog.RB ] [-c core.RB ] [-x cmds.RB ] [-d rép.RB ] [.Iprog[.IRcore|ID_proc.RB] ]

DESCRIPTION

Le but d'un débogueur tel que GDB est de vous permettre de voir ce qui se passe « à l'intérieur » d'un autre programme quand il s'exécute — ou ce qu'un autre programme faisait au moment où il s'est crashé.

GDB peut faire quatre principaux types de choses (en plus d'autres choses en appui) pour vous aider à prendre les bogues sur le fait :

   •
Démarrer votre programme, en spécifiant tout ce qui pourrait affecter son comportement.

   •
Faire stopper votre programme lors de conditions spécifiées.

   •
Examiner ce qui s'est passé, quand votre programme s'est arrêté.

   •
Changer des choses dans votre programme, de sorte que vous puissiez expérimenter en corrigeant les effets d'un bogue et poursuivre en étudiant un autre.

Vous pouvez utiliser GDB pour déboguer des programmes écrits en C, C++, et Modula-2. Le support du Fortran sera ajouté dès qu'un compilateur Fortran GNU sera prêt.

GDB est invoqué avec la commande shell gdb. Une fois lancé, il lit les commandes du terminal jusqu'à ce que vous lui disiez de s'arrêter avec la commande GDB quit. Vous pouvez obtenir de l'aide en ligne de gdb lui-même en utilisant la commande help.

Vous pouvez exécuter gdb sans arguments ni options, mais la manière la plus habituelle de lancer GDB est de lui fournir un ou deux arguments, en spécifiant un programme exécutable comme argument :

gdb programme

Vous pouvez également le démarrer en spécifiant à la fois un programme exécutable et un fichier core (image de la mémoire au moment du crash) :

gdb programme core

Vous pouvez, au lieu de cela, spécifier un identificateur de processus en second argument, si vous voulez déboguer un processus en cours d'exécution :

gdb programme 1234

attacherait GDB au processus 1234 (à moins que vous ayez également un fichier nommé « 1234.RB  » ; GDB cherche d'abord un fichier core).

Voici certaines des commandes GDB les plus utiles :

Placer un point d'arrêt sur la fonction (dans le fichier).
Démarrer votre programme (avec laliste_arguments, si elle est spécifiée).
Backtrace : afficher la pile d'appels du programme.
Afficher la valeur d'une expression.
Continuer l'exécution de votre programme (après l'avoir arrêté, par exemple suite à un point d'arrêt).
Exécuter la ligne suivante du programme (après s'être arrêté) ; passer au-dessus de tout appel de fonction présent dans la ligne (de code).
Exécute la ligne suivante du programme (après s'être arrêté) ; pénétrer tout appel de fonction présent dans la ligne.
help [nom]
Afficher des informations sur la commande GDB nom, ou des informations générales sur l'utilisation de GDB.
Quitter GDB.

Pour des détails complets sur GDB, voyez Using GDB: A Guide to the GNU Source-Level Debugger, par Richard M. Stallman et Roland H. Pesch. Le même texte est disponible en ligne dans l'entrée gdb du programme info .

OPTIONS

Tout argument autre que des options spécifiant un fichier exécutable et un fichier core (ou un ID de processus), c.-à-d. le premier argument rencontré sans drapeau d'option spécifié est équivalent à une option « -se,.RB  » et le second, s'il y en a un, est équivalent à une option « -c.RB  » ²si c'est le nom d'un fichier. Beaucoup d'options ont à la fois les formes longue et courte ; les deux sont montrées ici. Les formes longues sont aussi reconnues si vous les tronquez, pour autant qu'une partie suffisante de l'option soit présente pour éviter toute d'ambiguïté. (Si vous préférez, vous pouvez marquer les arguments d'option avec « +.RB  » plutôt qu'avec « -.RB  », bien que nous n'illustrions que la convention la plus courante.)

Toutes les options et arguments de ligne de commandes fournis sont traités dans un ordre séquentiel. L'ordre a une importance quand l'option « -x.RB  » est utilisée.

Lister toutes les options, avec de brèves explications.
Lire la table des symboles à partir du fichier.
Autoriser l'écriture dans les fichiers exécutables et les fichiers core.
Utiliser le fichier fichier comme le fichier exécutable à exécuter quand c'est approprié, et pour examiner des données pures conjointement avec une image mémoire (core dump).
Lire la table des symboles à partir du fichier fichier et l'utiliser comme fichier exécutable.
-c fichier
Utiliser le fichier comme image mémoire à examiner.
Exécuter les commandes GDB provenant du fichier.
Ajouter répertoire au chemin de recherche des fichiers sources.
N'exécuter aucune commande provenant d'un fichier d'initialisation « .gdbinit.RB  ». Normalement, les commandes présentes dans ces fichiers sont exécutées après que toutes les options de ligne de commandes et tous les arguments ont été traités.
« Silence ». Ne pas afficher les messages d'introduction et de copyright. Ces messages sont également supprimés en mode non interactif.
Exécuter en mode non interactif. Quitter avec la valeur de retour 0 après avoir traité tous les fichiers de commandes spécifiés par « -x.RB  » (et « .gdbinit.RB  », s'ils ne sont pas désactivés). Quitter avec une valeur de retour non nulle si une erreur s'est produite durant l'exécution des commandes GDB dans les fichiers de commandes.

Le mode non interactif peut être utile pour exécuter GDB comme un filtre, par exemple pour télécharger et exécuter un programme sur un autre ordinateur ; pour rendre ceci plus utile, le message

Program exited normally (Programme terminé normalement)

(qui est d'habitude émis lorsqu'un programme s'exécutant sous le contrôle de GDB se termine) n'est pas émis dans le mode non interactif.

Lancer GDB en utilisant répertoire en tant que répertoire de travail, au lieu du répertoire courant.
Emacs utilise cette option quand il exécute GDB comme un sous-processus. Elle indique à GDB de sortir le nom du fichier complet et le numéro de ligne d'une façon standard, reconnaissable, à chaque fois qu'un cadre de pile est affiché (ce qui inclut toutes les fois où le programme s'arrête). Cette forme reconnaissable ressemble à deux caractères «  32.RB  », suivis du nom du fichier, du numéro de ligne et de la position du caractère séparés par des deux-points, et un saut de ligne. Le programme d'interface Emacs-vers-GDB utilise les deux caractères «  32.RB  » comme un signal pour afficher le code source du cadre.
Régler le débit de la ligne (bauds ou bits par seconde) de toute interface sérielle utilisée pas GDB pour le débogage à distance.
Exécuter en utilisant périphérique pour l'entrée et la sortie standard de votre programme.

VOIR AUSSI

l'entrée « gdb » dans le fichier info ; Using GDB: A Guide to the GNU Source-Level Debugger, Richard M. Stallman et Roland H. Pesch, juillet 1991.

COPYING

Copyright (c) 1991 Free Software Foundation, Inc.

L'autorisation est donnée de créer et de distribuer des copies textuelles de ce manuel, à condition que la notice de copyright et la notice de permission soient préservées dans toutes les copies.

L'autorisation est donnée de copier et distribuer des versions modifiées de ce manuel sous les conditions de copie textuelle, à condition que l'entièreté du travail dérivé résultant soit distribuée sous les termes d'une autorisation identique à celle-ci.

L'autorisation est donnée de copier et distribuer des traductions de ce manuel dans n'importe quel autre langue, sous les conditions ci-dessus pour les versions modifiées, mis à part que cette notice de permission peut être incluse dans des traductions approuvées par la Free Software Foundation au lieu de l'anglais originel.

TRADUCTION

Frédéric Delanoy <delanoy_f at yahoo.com>, 2002.

4 novembre 1991 Outils GNU