active temporairement : (gdb) enable numero_pt_arret
arrêt conditionnel : (gdb) break ligne\_ou\_fonction if condition (ex.: break 100 if x > 10)
transforme le point d'arrêt en pt d'arrêt conditionnel : (gdb) cond numero_pt_arret condition
idem que print mais ré-affiche à chaque point d'arrêt du programme : (gdb) display
annule l'affichage : (gdb) undisplay
affiche les expression faisant l'objet d'un display : (gdb) info display
(gdb) disable disp numero\_display
(gdb) enable disp numero\_display
arrêt temporaire, le programme ne s'arrête qu'une fois : (gdb) tbreak
arrête après passer N fois à numero_pt_arret : (gdb) ignore bp numero_pt_arret
examine le contenu de la mémoire : (gdb) x argv[0]
watchpoints
permet de mettre un point d'observation, gdb s'arrête dès que la variable est modifiée : (gdb) watch variable
ou (gdb) watch expression
par ex: watch (i $i<$ 2 && argv[i] =="-h") sera déclenché lorsque l'expression est vraie quel que soit l'endroit du programme
arrêt lorsqu'une variable est lue : (gdb) rwatch variable
arrêt lorsqu'une variable est lue ou modifiée : (gdb) awatch variable
Examen des variables, registres \dots
état de la pile au plantus : (gdb) backtrace ou where
affiche d'une variable : (gdb) print x ou print M[i][j]
affiche x au format Z : Z= d=decimal, o=octal, x=hexa, c=caractère, f=flottant, t=binaire : (gdb) print/Z x
permet de réutiliser un résultat de l'affichage numéro i : (gdb) \$i
les dix derniers affichages : (gdb) show values
le dernier affichage : (gdb) \$
l'avant dernier : (gdb) \$\$
permet d'afficher une longueur de mémoire : print M[0]@N : affiche M[0] jusqu'à M[N-1] : (gdb) \@
affiche la variable x de la fonction fct : (gdb) print fct::x
affiche le résultat de la fonction toto avec les arguments (M,3,2) : ainsi que la valeur retournée par la fonction : (gdb) print toto(M,3,2)
affiche le type d'une variable : (gdb) whatis
affiche le détail d'une structure, union , enumeration : (gdb) ptype
affiche le prototype de la fonction toto : (gdb) info func toto
déplacement dans la pile des appels : (gdb) up et down
permet de se placer au numero N dans la pile : (gdb) frame N
Déroulement du programme
exécution pas à pas : (gdb) next
idem mais rentre dans les fonctions : (gdb) step
termine la fonction en cours et s'arrête après le retour : (gdb) finish
exécute un shell avec commande : (gdb) shell commande
attache le programme de PID N en cours d'exécution : (gdb) attach N
détache le programme : (gdb) detach
affiche le listing de l'endroit du programme où on se trouve : (gdb) list
exécute jusqu'à la prochaine ligne : (gdb) until
tuer le programme : (gdb) kill
Utiliser plusieurs terminaux
Affichage du terminal courant : (gdb) show inferior-tty
choix du terminal pour les sorties du programme débogué : (gdb) tty /dev/pts/3
Executer automatiquement des commandes aux points d'arrêts N
(gdb) commands N
> commande\_1
> commande\_2
> ...
> end
exemple :
(gdb) commands 1
> echo valeur de i
> print i
> echo valeur de j
> print j
> ...
> continue
> end
(gdb)
Historique des commandes
active l'historique : (gdb) set history expansion
rappelle la dernière commande : (gdb) !!
rappelle la dernière commande commançant par z : (gdb) !z
Divers
supprime l'affichage de certains messages : (gdb) silent