2009-02-01 5 views
28

J'ai une liste de points d'arrêt que je veux ajouter chaque fois que je débogue un programme particulier. Est-il possible de mettre toutes ces informations de point d'arrêt dans un fichier et de les utiliser au début de chaque session de débogage? En d'autres termes, puis-je fournir un fichier de script avec des informations de point d'arrêt à GDB avant de donner la commande «Exécuter».Points d'arrêt GDB

Merci à l'avance, Sachin

Répondre

20

Vous pouvez mettre toutes les commandes que vous voulez dans un fichier .gdbinit qui vit dans le même répertoire que l'exécutable en cours de débogage.

Quelque chose comme:

b somefile.c:128 
b otherfile.c:33 

devrait fonctionner très bien.

Edit: Oui, l'argument de ligne de commande -x vous permettra d'exécuter des fichiers arbitraires au démarrage GDB, mais maintenant un fichier .gdbinit pour chaque projet signifie que le fichier est exécuté automatiquement (sans qu'il soit nécessaire de spécifier un nom de fichier) . En outre, vous pouvez facilement ajouter le fichier .gdbinit spécifique au projet à votre contrôle de source, ce qui signifie que tous les membres de votre équipe peuvent utiliser les mêmes fonctions de débogage.

28

De homme gdb (1):

-x file 
      Execute GDB commands from file file. 

Vous pouvez ensuite mettre vos points d'arrêt dans un fichier:

break [file:]function 
break [file:]function 
... 
12

Outre l'utilisation d'un fichier externe, vous pouvez aussi simplement garder ouvert gdb : Si le binaire sous gdb change, il rechargera le binaire et les bibliothèques sans perdre vos points d'arrêt lors de votre prochaine exécution.

2

Ou que diriez-vous:

gdb --command = commands.gdb ./a.out

où commands.gdb est un fichier texte avec vos points d'arrêt.

/Johan

Mise à jour: --command est probablement le même que -x

1

La documentation de GDB prétend qu'une commande "enregistrer des points d'arrêt" et "source" peut être utilisé: http://sourceware.org/gdb/current/onlinedocs/gdb/Save-Breakpoints.html#Save-Breakpoints. Cependant cela ne fonctionne pas sur mon gdb (7.1-ubuntu).

+1

J'avais la même version et ça ne fonctionnait pas. J'ai découvert que cette fonctionnalité est ajoutée avec gdb version 7.2. Si vous compilez la nouvelle version, cela fonctionne. –

10

La commande save breakpoints est nouvelle à partir de gdb 7.2. Après avoir enregistré les points d'arrêt dans un fichier, vous pouvez les lire dans une session gdb ultérieure à l'aide de la commande source, puis la prochaine fois que vous exécuterez gdb, vous pouvez utiliser l'option -x <filename>.

save breakpoints <filename> 
    Save all current breakpoint definitions to a file suitable for use 
    in a later debugging session. To read the saved breakpoint 
    definitions, use the `source' command.