Personnalisez l'affichage de vos données dans le débogueur de Visual C++ 2008 Express
Nous allons voir ici comment personnaliser l'affichage des données dans le débogueur de Visual C++. En tant que développeur, vous consacrez sans doute une bonne partie de votre temps à déboguer. L'astuce suivante pourrait vous faire gagner pas mal de temps et vous éviter d'avoir à effectuer un grand nombre de choses répétitives, désagréables et inutiles.
Lorsque vous êtes sur un point d'arrêt, vous pouvez examiner les variables pour voir leurs valeurs et leurs types. Lorsqu'il s'agit d'une classe ou d'une structure, le débogueur affiche un signe plus (+), indiquant qu'il peut être développé pour montrer son contenu et ainsi de suite si ses membres sont également composés. Si le membre que l'on souhaite voir se trouve à un niveau très profond dans la hiérarchie, on perd du temps à développer tous les sous-niveaux.
Voici une simple démonstration détaillant comment vous pouvez contrôler ce que le débogueur affiche.
- Démarrez Visual Studio 2003, 2005 ou 2008 y compris dans sa version Express.
- Cliquez sur Fichier->Nouveau->Projet.
- Sélectionnez Visual C++, Application Console Win32 et nommez votre projet.
- Dans l'assistant, choisissez Application Console, Projet Vide puis cliquez sur Terminer dans l'assistant.
- Collez l'exemple de code (ci-dessous) à déboguer dans le fichier main.cpp (à créer).
// Fichier main.cpp #include <iostream> #include <windows.h> int main(int, char **) { Sleep(2000); HWND hwnd = GetForegroundWindow(); TITLEBARINFO ti; ti.cbSize = sizeof(ti); GetTitleBarInfo(hwnd, &ti); return EXIT_SUCCESS; // on place un breakpoint sur cette ligne avec F9. }

Cet exemple ne fait qu'appeler une fonction de l'API Windows qui remplit une structure que l'on va pouvoir examiner dans le débogueur. Pressez F9 sur la ligne du return pour mettre un point d'arrêt, puis lancez le débogage en pressant F5, le projet sera généré au passage. Quand le point d'arrêt est atteint, la fenêtre de débogage montre ceci (on ne s'intéresse qu'à la variable ti) :

Par défaut, on ne voit que la première ligne, et cette ligne n'est pas du tout explicite, elle nous oblige à développer l'arborescence. Le type tagTITLEBARINFO (affiché dans la colonne type dans la capture ci-dessus) donne des indications sur la taille de la barre de titre d'une fenêtre. L'information intéressante est la taille de cette barre représentée par le type tagRECT.
Nous allons donc modifier ce qui est affiché par défaut.
- Ouvrez le fichier C:\Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\AutoExp.dat dans un éditeur de texte. Ce répertoire peut varier en fonction de la version de Visual C++. Le fichier autoexp.dat décrit comment personnaliser l'affichage des variables dans le débogueur.
- Dans la section [AutoExpand], on ajoute sur une nouvelle ligne :
tagTITLEBARINFO =top=<rcTitleBar.top> bottom=<rcTitleBar.bottom> left=<rcTitleBar.left> right=<rcTitleBar.right>
- Relancez le débogage (F5) et admirez la différence. La fenêtre de débogage affichera désormais ceci :

Il est toujours possible de dérouler la structure pour voir son contenu, mais il est maintenant possible de voir les informations principales au premier coup d'oeil. Pour le formatage des données, vous pouvez lire la documentation au début du fichier autoexp.dat.
Derniers Commentaires