L’objectif de cette annexe est d’illustrer sur un cas très simple comment utiliser
gdb
(oulldb
) pour déboguer son programme.
gdb
-g
(pour inclure les informations de debug
).a.out
).run
(ou r
).quit
(ou q
)De manière générale,le programme s’exécute jusqu’à atteindre:
CTRL+C
)break num_ligne
ou break nom_fonction
(b
) (plusieurs points d’arrêts peuvent être définis)delete num_point_arret
info break
delete
(d
)disable x
ou disable x-y
enable x
ou enable x-y
, possibilité d’ajouter once
pour une seule activationbreak x if condition
watch variable
ou watch expr
continue
(c
) reprise jusqu’au prochain point d’arrêt / erreur / terminaisonnext
(n
) effectue l’instruction / fonction suivante et s’interromptstep
(s
) effectue l’instruction suivante et s’interromptfinish
: permet d’aller directement à la fin de la fonctionstep x
ou next x
pour avancer de x
lignes d’une fois.continue x
pour ignorer le point d’arrêt courant x
fois (utile pour les boucles).print expr
(p expr
)[]
, &
, *
)p/x
p/d
p/u
p/o
p/c
p/f
p/a
pour avoir un résultat en décimal, octal, hexadécimal…bt
ou bt full
up
/ down
Vous pouvez consulter le lien suivant https://www.rocq.inria.fr/secret/Anne.Canteaut/COURS_C/gdb.html qui contient d’autres commandes.
Il s’agit d’un programme qui contient plusieurs erreurs (variable non initialisée, passage d’une valeur au lieu du pointeur). Nous allons illustrer comment utiliser gdb
pour trouver ces erreurs.
gdb