Next: gdb
Up: Le debuggage
Previous: Les stratégies de
Un debuggeur permet de suivre le plus visuellement possible le fonctionnement d'un programme, en particulier par les moyens suivants :
- la visualisation du contenu des variables locales dans une procédure, il faudra pour cela avoir arrêté le programme à un endroit à l'intérieur de cette procédure en y posant un breakpoint ou point d'arrêt qui permet de faire fonctionner normalement le programme jusqu'à ce qu'il tombe dans le piège que tu viens de lui tendre;
- l'affichage de la pile des appels de procédure, c'est-à-dire la liste des fonctions qui ont été appelées successivement avant d'arriver à la procédure actuelle (à commencer par main bien sûr !), avec les arguments qui leur ont été passés, c'est extrêmement utile pour vérifier les valeurs de ces paramètres et se situer rapidement quand une segmentation fault, i.e. l'utilisation d'un pointeur nul, survient et met fin (très) brutalement à la vie de ton programme;
- le suivi pas à pas des lignes de programmes effectivement exécutées. C'est le mode de fonctionnement le plus lent d'un débuggeur : avant chaque ligne exécutée tu dois appuyer sur une touche, donc on ne l'utilise qu'après être passé sur le dernier breakpoint avant le plantage pour comprendre ce
qui s'est passé. Quand une ligne comprend un appel de fonction, on a le choix entre exécuter entièrement cette fonction ( next), ce qui revient à placer un point d'arrêt à la ligne suivante, où passer à la première ligne de cette fonction (le { ouvrant) en restant en mode pas à pas ( step into), si on se rend compte que c'était inutile (pas la peine de debugger printf par exemple, elle marche), on peut en général terminer juste la procédure en cours ( step out). Pendant l'exécution pas à pas on peut suivre en temps réel le contenu de certaines variables ( watch ou display), et même, si le debuggeur est évolué, évaluer des expressions mathématiques sur ces variables.
Dans la section suivante on va voir comment réaliser ces opérations avec gdb.
Next: gdb
Up: Le debuggage
Previous: Les stratégies de
Wed Jun 25 13:24:35 MET DST 1997