Le débogage sous C++Builder

niveau : débutant-avancé

Voici les principales fonctions à connaître pour déboguer correctement sous C++ Builder.

Cet article a été effectué avec les versions 6 et 2006 de Borland C++ Builder, certains aspects peuvent varier sur une autre version.

Commentez cet article : 2 commentaires Donner une note à l'article (5)

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Lors d'un développement, le but final est bien entendu d'avoir la meilleure application possible, avec le moins de bogues possibles.
Nous allons donc ici nous intéresser à ce point crucial du développement que certaines personnes peuvent avoir du mal à appréhender.

Cette article se décomposera en trois grands groupes :
  • le pas à pas ;
  • voir/modifier une variable ;
  • les applications à débogage spécifique.

Le débogage est bien entendu faisable que si le projet à déboguer est configuré en mode débogage.
Pour mettre votre projet en mode débogage, reportez-vous au chapitre II.

II. Mettre son projet en mode débogage

Le mode débogage est activé par défaut lors de la création du projet.
Si votre projet n'est plus en mode débogage voici comment réactiver ce mode :

II-A. BCB6 et versions antérieures

Sur les versions BCBX il faut suivre la procédure suivante :
  • Aller dans les options du projet (clic droit sur le projet "-> options...", par le menu "projet -> options", ou encore en effectuant la combinaison de touches Maj+Ctrl+F11) ;
  • Une fois sur la fenêtre d'option, cliquer sur l'onglet "Compilateur" ;
  • Une fois sur l'onglet, cliquer sur le bouton "Débogage" ;
  • Valider la fenêtre d'option.
Image non disponible
Image non disponible

II-B. BCB 2006 et versions postérieures

Sur les version BCB 200X il faut suivre la procédure suivante :
  • Aller dans les options du projet (clic droit sur le projet "-> options...", par le menu "projet -> options", ou encore en effectuant la combinaison de touches Maj+Ctrl+F11) ;
  • Une fois sur la fenêtre d'option, cliquer sur le bouton "Configurations..." ;
  • Sur la fenêtre de configuration, sélectionner la "Construction débogage" puis cliquer sur le bouton "Activer" ;
  • Valider les fenêtres successives.
Image non disponible
Image non disponible
Image non disponible

III. Le pas à pas

Le mode pas à pas du débogueur permet de contrôler le fonctionnement de l'application ligne de code après ligne de code, d'où son nom de pas à pas.

III-A. Le point d'arrêt

Le point d'arrêt permet de spécifier au débogueur de mettre en pause l'application à chaque fois qu'il passe au niveau de la ligne de code se situant sous le point d'arrêt.

Pour mettre ou retirer un point d'arrêt, il suffit :
  • de cliquer dans la marge de la fenêtre de code pour qu'un point rouge apparaisse ;
  • ou de cliquer sur la ligne où vous voulez stopper l'application et appuyer sur F5 ;
  • ou dernière solution, faire un clic droit au niveau de la ligne de code et dans le menu popup, cliquer sur "Déboguer -> Basculer le point d'arrêt".
Image non disponible

III-B. Le pas à pas

Le pas à pas permet de suivre l'évolution du programme ligne de code après ligne de code lorsque celui-ci est en mode débogage.
La prochaine ligne de code à être exécutée se trouve au niveau de la flèche bleue dans la marge de gauche. Les lignes de code sur lesquelles le programme peut s'arrêter se matérialisent par un petit point bleu dans cette même marge.

Pour passer à la ligne suivante du code, il suffit :
  • d'appuyer sur F8 ;
  • ou d'aller dans le menu "Exécuter" puis de cliquer sur "Pas à pas".
Image non disponible

III-C. Le pas à pas approfondi

Le pas à pas approfondi permet la même chose que le pas à pas mais en passant par tous les codes intermédiaires appelés qu'il est possible de consulter, par exemple ici je vais pouvoir consulter le code de la méthode ChangeComponent.

Pour passer à la ligne suivante du code approfondi, il suffit :
  • d'appuyer sur F7 ;
  • ou d'aller dans le menu "Exécuter" puis de cliquer sur "Pas à pas approfondi".
Image non disponible

III-D. Jusqu'au curseur

L'option jusqu'au curseur permet d'exécuter tout le programme jusqu'à ce qu'il arrive sur la ligne de code où se trouve le curseur sous réserve que cette ligne soit "débogable".
Si cette ligne n'est pas débogable, l'exécution continuera jusqu'à ce qu'il trouve un point d'arrêt.

Pour exécuter le programme jusqu'au curseur, il suffit :
  • d'appuyer sur F4 ;
  • d'aller dans le menu "Exécuter" puis de cliquer sur "Jusqu'au curseur" ;
  • ou encore faire un clic droit au niveau de la ligne de code et dans le menu popup, cliquer sur "Déboguer -> Exécuter jusqu'au curseur".
Image non disponible

III-E. Jusqu'au retour

L'option jusqu'au retour permet, lorsque l'on est rentré dans une méthode grâce au pas à pas approfondi, de continuer l'exécution jusqu'au point suivant la ligne que l'on a approfondie.

Pour exécuter le programme jusqu'au retour, il suffit :
  • d'appuyer sur Maj + F8 ;
  • ou d'aller dans le menu "Exécuter" puis de cliquer sur "Exécuter jusqu'au retour".
Image non disponible

III-F. Suspension et réinitialisation du programme

III-F-1. Suspension

La suspension du programme permet d'arrêter le programme lors de son exécution.
Le programme s'arrête là où il en était, c'est donc assez aléatoire bien que l'on a souvent une idée du bloc de code en cours d'exécution.

Pour suspendre l'application, il suffit :
  • de cliquer sur l'icône pause ;
  • ou d'aller dans le menu "Exécuter" puis de cliquer sur "Suspendre le programme".
Image non disponible

III-F-2. Réinitialisation

La réinitialisation de l'application permet de couper l'application, sans exécuter le code de fermeture, et de revenir à l'édition du code.
Cette fonctionnalité est très pratique car lorsqu'on débogue, il arrive que l'application plante au point de ne plus pouvoir exécuter le code de fermeture du programme, cela permet alors de killer le programme sans devoir passer par le gestionnaire des tâches, de plus en passant par le gestionnaire des tâches il arrive que BCB ne s'aperçoive pas que l'application a été coupée et il reste en mode débogage, il ne vous reste plus alors qu'à killer BCB à son tour.

Pour réinitialiser l'application, il suffit :
  • d'appuyer sur Ctrl + F2 ;
  • de cliquer sur l'icône avec un bouton rouge (à côté du bouton pause) (uniquement pour les versions 200X) ;
  • ou encore d'aller dans le menu "Exécuter" puis de cliquer sur "Réinitialiser le programme".
Image non disponible

IV. Voir/Modifier une variable

Lors d'un débogage, il est nécessaire de connaître la valeur contenue dans certaines variables, voir même de pouvoir la modifier, c'est ce que nous allons voir dans ce chapitre.

IV-A. Le point de suivi

Le point de suivi permet d'ajouter, dans une fenêtre s'appelant "Liste des points de suivi", la variable que l'on veut suivre.

Pour ajouter un point de suivi, il suffit :
  • de placer le curseur sur la variable à suivre, puis d'appuyer sur Ctrl + F5 ;
  • de cliquer droit sur la variable à suivre, puis dans le menu, "Déboguer -> Ajouter un suivi sous le curseur" ;
  • ou encore d'aller dans le menu "Exécuter" puis de cliquer sur "Ajouter un point de suivi".
Image non disponible

Les valeurs des points de suivi se mettent à jour automatiquement dès que l'on exécute une nouvelle ligne de code.

En cliquant droit dans la liste des points de suivi, vous avez accès à diverses options, dont :
  • modifier le point de suivi ;
  • ajouter un point de suivi ;
  • copier la valeur contenue dans le point de suivi ;
  • copier le nom du point de suivi ;
  • ou encore de supprimer le point de suivi.
Image non disponible

IV-B. La fenêtre des variables locales

La fenêtre des variables locales est comme la liste des points de suivi mais regroupe automatiquement toutes les variables locales de la méthode dans laquelle on se trouve.
Elle ne présente par contre pas autant d'options, uniquement la possibilité d'inspecter les variables (voir III-D).

Image non disponible

IV-C. Evaluer/Modifier une variable

La fenêtre d'évaluation/modification d'une variable permet d'obtenir la valeur d'une variable ou d'une expression de manière rapide et permet également de modifier cette valeur (pour les variables).

Pour obtenir l'évaluation d'une variable, il suffit :
  • de placer le curseur sur la variable à suivre, puis d'appuyer sur Ctrl + F7 ;
  • ou de cliquer droit sur la variable à évaluer, puis dans le menu, "Déboguer -> Evaluer/Modifier" ;
  • ou encore d'aller dans le menu "Exécuter" puis de cliquer sur "Evaluer/Modifier".
Image non disponible
Pour modifier une variable, il suffit d'obtenir la fenêtre d'évaluation précédente puis de modifier la valeur dans le champ "Nouvelle valeur" puis :
  • de valider par la touche Entrée ;
  • ou de cliquer sur le bouton "Modifier".
Image non disponible

IV-D. L'inspecteur d'objet

L'inspecteur de débogage est particulièrement utile lorsque vous voulez examiner des objets composés de plusieurs données, comme des tableaux ou des listes liées.
Étant donné que vous pouvez inspecter un par un les éléments affichés dans l'inspecteur de débogage, vous pouvez effectuer une promenade dans les objets composés de plusieurs données en ouvrant un inspecteur de débogage sur un composant de l'objet composé.

Pour inspecter une variable, il suffit :
  • de placer le curseur sur la variable à suivre, puis d'aller dans le menu "Exécuter" et de cliquer sur "Inspecter" ;
  • ou à partir de la fenêtre "Evaluer/Modifier", cliquer sur le bouton "Inspecter".
Image non disponible
Ici on voit bien le contenu entier du vector vectProp

IV-E. La pile d'appels

La pile d'appels permet de retracer le déroulement du programme au moment où celui-ci est arrêté.
Vous y retrouverez quelle méthode a appelé la méthode où vous vous trouvez actuellement, puis celle qui a appelé cette dernière, ainsi de suite.
Dans la pile d'appels on trouve également les valeurs paramètres lors de l'appel de ces méthodes.

Pour afficher la pile d'appels, il suffit :
  • de faire le raccourci clavier Ctrl+Alt+S ;
  • ou encore d'aller dans le menu "Voir" puis de cliquer sur "Fenêtres de débogage" et enfin de cliquer sur "Pile d'appels".
Image non disponible

V. Conclusion

Grâce au débogueur de Builder, il est possible de déboguer, proprement, simplement et efficacement son code.
Ses capacités vont de la visualisation du contenu des variables jusqu'à la visualisation de l'enchainement du code, alors pourquoi s'en priver !

VI. Remerciements

Je remercie blondelle pour ses conseils, et mlny84 pour sa relecture.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.