Les outils de débogage dans Code::Blocks

Ceci concerne surtout la version Windows de Code::Bocks, installée à l’aide du fichier codeblocks-12.11mingw-setup.exe1, 2 téléchargé depuis le site http://www.codeblocks.org/downloads.

Note. La plupart des illustrations de cette note sont extraites d’une version précédente de Code::Blocks. Elles ne sont pas identiques mais devraient être fonctionnellement équivalentes à celles que vous verrez.

1. Mise en place du projet et de son environnement

Pour bénéficier des fonctions de débogage vous devez prendre certaines précautions lors de la création du projet et du programme à développer. La création du projet commence comme ceci :

A l’étape suivante il faut choisir Console application :

Ensuite, il faut sélectionner le langage C :

puis le nom du projet et le dossier le contenant :

Enfin, faites bien attention à ce qu’une configuration Debug soit créée (la case montrée ci-dessous doit être cochée)  :

Après cela vous pouvez commencer à écrire votre programme. Assurez vous qu’au moins les barres d’outils Compiler3 et Debugger4 sont visibles :

 

Si ce n’est pas le cas, agissez sur le menu View > Toolbars :

Enfin, assurez-vous que, dans la barre d’outils Compiler, la liste déroulante Build target: exhibe le choix Debug :

2. Utilisation du débogueur

Les principaux boutons de la barre d’outils Debug4 sont :

(Debug / Continue) Cette commande lance l’exécution du programme, contrôlée par le débogueur, ou relance cette dernière si elle avait été interrompue. Le programme s’exécutera automatiquement jusqu’à la rencontre d’un point d’arrêt.

(Run to cursor) Cette commande lance ou relance l’exécution du programme jusqu’à l’endroit où se trouve le curseur, comme si un point d’arrêt avait été placé à cet endroit.

(Next line ) L’exécution ayant été interrompue, cette commande la fait progresser d’une ligne. Si cette ligne est un appel de fonction, celui-ci est considéré comme élémentaire et l’exécution de la fonction n’est pas détaillé (sauf si des points d’arrêt ont été placés à l’intérieur de la fonction).

(Step into ) Cette commande fait la même chose que la précédente, mais si la ligne à exécuter est un appel de fonction, l’exécution s’arrête à l’entrée de celle-ci.

(Step out ) L’exécution ayant été interrompue à l’intérieur d’une fonction, cette commande la relance jusqu’à la première ligne qui suit l’appel de la fonction.

(Stop debugger) Cette commande arrête la session de débogage.

(Debugging windows) Cette commande ouvre diverses fenêtres de débogage. La plus intéressante est la fenêtre Watches, qui montre les valeurs de diverses variables.

Les variables locales y sont montrées d’office. Pour ajouter une variable globale (comme nbr, dans l’image ci-dessous) sélectionner une occurrence de cette dernière et choisir Watch dans le menu contextuel (bouton droit). Les variables dont la valeur a changé depuis le dernier arrêt de l’exécution sont montrées en rouge.

Le point où l’exécution est interrompue est indiqué par une flèche jaune, comme la ligne 18 dans la figure ci-dessous.

On place un point d’arrêt en cliquant dans la marge de gauche, à côté d’un numéro de ligne. Par exemple, la figure suivante montre un point d’arrêt placé à l’entrée de la fonction echange (ligne 7) :


1 Les noms de fichier montrés ici (qui correspondent à la version 12 de Code::Blocks) sont ceux de novembre 2013.

2 Si vous n’avez pas les droits d’administration sur votre système, téléchargez codeblocks-12.11mingw-setup_user.exe

3Dans la version 12, la barre d’outils Compiler ressemble à ceci (la fonction de chaque bouton est affichée lorsque le curseur le survole) :

4Dans la version 12, la barre d’outils Debugger ressemble à ceci (la fonction de chaque bouton est affichée lorsque le curseur le survole) :