J’ai décidé de découvrir comment nos praticiens C / C + * nix utilisent le débogueur gdb.
Voici ce que j’utilise généralement:
Comment l’utilisez-vous?
Les commandes gdb les plus utiles à mon avis (à part toutes celles déjà listées):
Enfin, si le débogage s’effectue via un lien lent, l’interface utilisateur texte peut être utile. Pour l’utiliser, démarrez gdb avec le commutateur de ligne de commande --tui
.
Outre ce qui a déjà été posté, j’utilise aussi:
signal SIGNAL noprint nostop
pour certains signaux personnalisés qui ne présentent aucun intérêt réel lors du débogage PS: Une des raisons pour laquelle j’aime personnellement gdb btw. est qu’il prend en charge la complétion par des tabulations pour presque tout (commandes gdb, symboles dans la table des symboles, fonctions, fonctions membres, etc.). Ceci est un assez bon coup de pouce de productivité à mon avis.
L’écriture de scripts est une fonctionnalité intéressante de GDB.
Après avoir exécuté le programme, votre script sera exécuté à l’occasion lorsque le point d’arrêt se produit.
Gdb n’est pas ma spécialité, mais voici ce que j’utilise:
bt
lister une stack up
, down
dans une stack until
continuer jusqu’à atteindre une ligne avec un nombre supérieur au courant – pour les boucles existantes watch [expr]
casser le programme quand expr change … mais principalement j’utilise ddd comme interface pour gdb
Tapez Ctrl-X Ctrl-A pour ouvrir une fenêtre simple avec un aperçu de la source.
Il y a quelque temps, j’ai trouvé cgdb:
C’est une interface pour gdb à base de curses (console de couleur) qui a rendu ma vie beaucoup plus heureuse lorsque j’étais limité au débogage dans une fenêtre de console.
Consultez le guide de l’utilisateur à l’ adresse http://sources.redhat.com/gdb/current/onlinedocs/gdb_toc.html .
Il existe également quelques utilisations qui ne sont pas directement liées au débogage. Par exemple, il peut être utilisé pour l’évaluation de l’expression C:
(gdb) printf "% lu \ n", (long non signé) (- 3L) 4294967293
gdb -tui
commutateur gdb -tui
pour une excellente ‘interface utilisateur texte’ (une sorte de gui en mode texte). Il supporte plusieurs fenêtres et est généralement beaucoup plus convivial que d’utiliser la commande ‘list’ (puisqu’il montre la source dans une fenêtre sep)
Les débutants utilisant gdb auront le sentiment que c’est difficile. Mais il existe un outil basé sur l’interface graphique, DDD (Data Display Debugger), identique à gdb. Vous avez une console dans le bas pour exécuter les commandes gdb et 3 / 4ème partie supérieure serait le code. Vous aurez la possibilité d’apprendre et de comprendre les commandes et le stream de manière excellente.