Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le débogueur Visual Studio fournit de nombreuses fonctionnalités puissantes pour vous aider à déboguer vos applications. Cette rubrique fournit un moyen rapide d’apprendre certaines des fonctionnalités de base.
Créer un projet
Ouvrez Visual Studio et créez un projet.
Si la fenêtre Démarrer n’est pas déjà ouverte, sélectionnez Fenêtre de démarrage de fichier>. Dans la fenêtre Démarrer, sélectionnez Créer un projet. Dans la zone de recherche, tapez « Projet vide », puis sélectionnez le modèle de projet vide C++.
Si vous ne voyez pas le modèle de projet, ouvrez Visual Studio Installer. Choisissez le développement Desktop avec la charge de travail C++, puis choisissez Modifier.
Visual Studio crée le projet.
Créer un fichier source appelé
MyDbgApp.cpp
Dans MyDbgApp.cpp, remplacez le code suivant
int main() { return 0; }
avec ce code (ne supprimez
#include "stdafx.h"
pas) :#include <list> #include <iostream> using namespace std; void doWork() { list <int> c1; c1.push_back(10); c1.push_back(20); const list <int> c2 = c1; const int &i = c2.front(); const int &j = c2.front(); cout << "The first element is " << i << endl; cout << "The second element is " << j << endl; } int main() { doWork(); }
Définir un point d’arrêt
Un point d’arrêt est un marqueur qui indique où Visual Studio doit suspendre votre code en cours d’exécution afin que vous puissiez examiner les valeurs des variables, ou le comportement de la mémoire, ou si une branche de code est en cours d’exécution. C'est la fonction la plus élémentaire du débogage.
Pour définir le point d’arrêt, cliquez dans la marge à gauche de l’appel
doWork
de fonction (ou sélectionnez la ligne de code, puis appuyez sur F9).Appuyez maintenant sur F5 (ou choisissez Déboguer > Démarrer le débogage).
Le débogueur s'interrompt à l'endroit où vous avez défini le point d'arrêt. L’instruction où l’exécution du débogueur et de l’application est en pause est indiquée par la flèche jaune. La ligne avec l’appel
doWork
de fonction n’a pas encore été exécutée.Conseil / Astuce
Si vous avez un point d’arrêt dans une boucle ou une récursivité, ou si vous avez de nombreux points d’arrêt que vous parcourez fréquemment, utilisez un point d’arrêt conditionnel pour vous assurer que votre code est suspendu UNIQUEMENT lorsque des conditions spécifiques sont remplies. Un point d’arrêt conditionnel permet de gagner du temps et peut également faciliter le débogage des problèmes difficiles à reproduire.
Lorsque vous essayez de déboguer des échecs liés à la mémoire en C++, vous pouvez également utiliser des points d’arrêt pour inspecter les valeurs d’adresse (rechercher NULL) et les nombres de références.
Naviguer dans le code
Il existe différentes commandes pour indiquer au débogueur de continuer. Nous affichons une commande de navigation de code utile disponible à partir de Visual Studio 2017.
Lorsque vous êtes en pause au point d'arrêt, survolez l'instruction c1.push_back(20)
jusqu'à ce que le bouton vert Exécuter pour cliquer apparaisse, puis appuyez sur le bouton Exécuter pour cliquer.
L’application poursuit l’exécution, en appelant doWork
et se met en pause à l'endroit où vous avez cliqué sur le bouton.
Les commandes clavier courantes utilisées pour parcourir le code incluent F10 et F11. Pour obtenir des instructions plus détaillées, consultez Première vue sur le débogueur.
Inspecter des variables dans un datatip
Dans la ligne de code actuelle (marquée par le pointeur d’exécution jaune), survolez l’objet
c1
avec votre souris pour afficher une infobulle.L’info-bulle affiche la valeur actuelle de la
c1
variable et vous permet d’inspecter ses propriétés. Lors du débogage, si vous voyez une valeur à laquelle vous ne vous attendez pas, vous avez probablement un bogue dans les lignes de code précédentes ou celles qui l'appellent.Développez le datatip pour examiner les valeurs des propriétés actuelles de l’objet
c1
.Si vous voulez épingler le datatip pour continuer à voir la valeur de
c1
pendant que vous exécutez du code, cliquez sur la petite icône d’épingle. (Vous pouvez déplacer le datatip épinglé vers un emplacement approprié.)
Modifier le code et continuer le débogage
Si vous identifiez une modification que vous souhaitez tester dans votre code au milieu d’une session de débogage, vous pouvez également le faire.
Cliquez sur la deuxième instance de
c2.front()
et remplacezc2.front()
parc2.back()
.Appuyez sur F10 (ou Déboguer > pas à pas) quelques fois pour faire avancer le débogueur et exécuter le code modifié.
F10 fait avancer le débogueur d’une instruction à la fois, mais il effectue un pas à pas principal sur les fonctions au lieu d’un pas à pas détaillé (le code que vous ignorez s’exécute tout de même).
Pour plus d’informations sur l’utilisation de l’édition et de la poursuite et sur les limitations des fonctionnalités, consultez Modifier et continuer.
Étapes suivantes
Dans ce tutoriel, vous avez appris à démarrer le débogueur, à parcourir le code et à inspecter les variables. Vous pouvez obtenir un aperçu général des fonctionnalités du débogueur, ainsi que des liens vers plus d’informations.