Démarrage rapide : Déboguer avec C++ à l’aide du débogueur Visual Studio

Dans ce guide de démarrage rapide, vous allez découvrir comment utiliser le débogueur Visual Studio pour déboguer votre code C++ natif. Cet article fournit un moyen rapide d’apprendre quelques-unes des fonctionnalités de base pour travailler dans le débogueur.

Si vous n'avez pas Visual Studio, vous pouvez installer la version d'évaluation free version à partir de la page téléchargements Visual Studio.

Créer un projet

Commencez par créer un nouveau projet afin d’avoir du code à examiner avec le débogueur.

  1. Ouvrez Visual Studio et créez un projet.

    • Si la fenêtre de démarrage n’est pas ouverte, sélectionnez Fichier>Fenêtre de démarrage.

    • Dans la fenêtre de démarrage, sélectionnez Créer un projet.

  2. Dans la fenêtre Créer un projet , définissez les filtres et recherchez un modèle de projet.

    • Dans la zone Rechercher des modèles , entrez vide.

    • Développez la liste déroulante Langue et sélectionnez C++.

  3. Dans la liste des résultats, sélectionnez le modèle Empty Project pour C++, puis sélectionnez Next.

    Si vous ne voyez pas le modèle Empty Project pour C++, sélectionnez l'option Continue sans code.

    1. Sélectionnez Tools>Get Tools and Features... , qui ouvre le programme d’installation Visual Studio.

    2. Dans la fenêtre Programme d’installation, cochez la case pour le développement Desktop avec la charge de travail C++ , puis sélectionnez Modifier.

      Votre installation de Visual Studio se met à jour pour inclure la charge de travail C++ sélectionnée.

    3. Une fois la mise à jour terminée, sélectionnezFenêtre de démarrage du > et suivez les instructions précédentes pour sélectionner le modèle requis.

  4. Configurez le nouveau projet :

    1. Entrez un nom Project et Solution ou utilisez les valeurs par défaut.

    2. Utilisez l’emplacement par défaut ou sélectionnez Parcourir (...) pour créer le projet dans un autre dossier.

    3. Cliquez sur Créer.

    Visual Studio crée votre projet et ajoute les fichiers projet dans le dossier spécifié.

Ajouter un fichier projet

Ajoutez un fichier de code pour que vous ayez du contenu à tester dans le débogueur.

  1. Dans le volet Explorateur de solutions, Cliquez avec le bouton droit sur votre <project-name> et sélectionnez Add>New Item.

    Si vous ne voyez pas le volet Explorateur de solutions, sélectionnez View>Explorateur de solutions.

  2. Dans la boîte de dialogue Ajouter un nouvel élément , entrez le nom de fichier MyDbgApp.cpp, puis sélectionnez Ajouter.

    Le fichier s’ouvre dans l’éditeur de code.

  3. Ajoutez le code suivant au nouveau fichier.

    #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();
    }
    
  4. Enregistrez les modifications apportées à votre fichier avec le raccourci clavier Ctrl+S .

Définir un point d’arrêt

Un point d’arrêt est un marqueur qui indique où Visual Studio doit interrompre l’exécution de votre code. Lorsqu’un point d’arrêt est défini, vous pouvez examiner les valeurs actuelles des variables, examiner le comportement de la mémoire et vérifier si une branche spécifique de code est en cours d’exécution. Les points d’arrêt sont la fonctionnalité la plus simple du débogage.

  1. Pour placer un point d’arrêt, repérez l’appel à doWork() dans le code, puis sélectionnez la marge de gauche sur la même ligne.

    Lorsque le point d’arrêt est défini, un point rouge s’affiche dans la barre gauche de la ligne correspondante dans le code.

    Screenshot qui montre comment définir un point d’arrêt dans le débogueur Visual Studio.

    Screenshot qui montre comment définir un point d’arrêt dans le débogueur Visual Studio 2022.

  2. Démarrez le débogage à l’aide du raccourci clavier F5 (ou sélectionnez Démarrer> ledébogage).

    Capture d’écran montrant le débogueur arrêté à un point d’arrêt défini dans Visual Studio.

    Capture d’écran montrant le débogueur arrêté sur un point d’arrêt défini dans Visual Studio 2022.

    L’exécution du code s’interrompt immédiatement avant l’appel à la doWork() fonction.

    Le débogueur s'interrompt à l'endroit où vous avez défini le point d'arrêt. Une flèche jaune identifie l’instruction où le débogueur interrompt l’exécution de l’application.

    Conseil / Astuce

    Lorsque vous déboguez des défaillances liées à la mémoire dans votre code C++, vous pouvez également utiliser des points d’arrêt pour inspecter les valeurs des adresses (voir NULL) et les compteurs de références.

Définir des points d’arrêt conditionnels

Si vous définissez 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.

Cette approche permet de s’assurer que votre code est suspendu uniquement lorsque des conditions spécifiques sont remplies. Un point d’arrêt conditionnel peut gagner du temps et faciliter le débogage des problèmes difficiles à reproduire.

Parcourir votre code

Visual Studio fournit plusieurs façons différentes d’indiquer au débogueur de poursuivre l’exécution de l’application. L’exemple suivant montre une commande utile pour parcourir votre code.

Pendant que le code est suspendu au point d’arrêt, pointez sur l’instruction c1.push_back(20) jusqu’à ce que vous voyiez l’icône Exécuter verte pour cliquer (Exécuter l’exécution ici). Sélectionnez l’icône.

Capture d’écran montrant comment utiliser l’action Exécuter jusqu’au clic dans le débogueur de Visual Studio.

Pendant que le code est suspendu au point d’arrêt, pointez sur l’instruction c1.AddLast(20) jusqu’à ce que vous voyiez l’icône Exécuter verte pour cliquer (Exécuter l’exécution ici). Sélectionnez l’icône.

Capture d’écran montrant comment utiliser l’action « Run to Click » dans le débogueur de Visual Studio 2022.

L’application poursuit son exécution, appelle doWork et s’interrompt à la ligne de code où vous avez sélectionné Exécuter jusqu’au clic.

Les commandes clavier courantes utilisées pour parcourir le code incluent F10 et F11. Pour obtenir des instructions plus détaillées, consultez Overview du débogueur Visual Studio.

Inspecter les variables dans une infobulle

Vous pouvez inspecter l’état de vos variables à l’aide de la fonctionnalité de conseil de données .

  1. Dans la ligne de code actuelle (marquée par le pointeur d’exécution jaune), pointez sur l’objet c1 pour voir l’info-bulle de données.

    Capture d’écran montrant comment afficher les info-bulles de données pour les variables de code dans le débogueur Visual Studio.

    Capture d’écran montrant comment afficher les info-bulles des variables du code dans le débogueur Visual Studio 2022.

    L'info-bulle vous montre la valeur actuelle de la variable c1 et vous permet d'inspecter ses propriétés.

    Lorsque vous déboguez, si vous voyez une valeur inattendue pour une variable, vous avez probablement un bogue. Le bogue peut se trouver dans le code qui effectue l’appel à la variable ou dans la ligne précédente.

  2. Développez l'info-bulle pour examiner les valeurs de propriété actuelles de l'objet c1.

  3. Pour continuer à surveiller la valeur de c1 pendant l’exécution du code, sélectionnez l’icône en forme d’épingle sur l’info-bulle.

    L’action Épingler maintient l’infobulle de données ouverte. Lorsque le code s’exécute, la valeur de l’infobulle épinglée change pour afficher l’état actuel de l’objet surveillé.

    Vous pouvez déplacer l’info-bulle épinglée vers n’importe quel emplacement de l’IDE. Il n’empêche donc pas d’observer d’autres éléments lors du débogage.

Activer le rechargement à chaud lors du débogage

Pendant le débogage, si vous voyez une modification que vous souhaitez tester dans votre code, vous pouvez utiliser la fonctionnalité Rechargement à chaud (précédemment appelée Edit et Continuer).

  1. Sélectionnez la deuxième instance de l’instruction c2.front() , puis remplacez le code c2.back()par .

  2. Sélectionnez F10 plusieurs fois (ou sélectionnez Déboguer>pas à pas plusieurs fois) pour avancer le débogueur et exécuter le code modifié.

    Animation qui montre comment modifier et continuer avec la fonctionnalité « Rechargement à chaud » dans le débogueur Visual Studio.

    Animation qui montre comment modifier et continuer dans le débogueur Visual Studio 2022.

    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 la fonctionnalité et les limitations, consultez Configure Rechargement à chaud.

Étape suivante