Démarrage rapide : Déboguer avec du code managé à l’aide du débogueur Visual StudioQuickstart: Debug with managed code using the Visual Studio debugger

Le débogueur Visual Studio fournit de nombreuses fonctionnalités puissantes pour vous aider à déboguer vos applications.The Visual Studio debugger provides many powerful features to help you debug your apps. Cette rubrique vous offre un moyen rapide de vous familiariser avec quelques-unes des fonctionnalités de base.This topic provides a quick way to learn some of the basic features.

Créer un nouveau projetCreate a new project

  1. Dans Visual Studio, sélectionnez Fichier > Nouveau projet.In Visual Studio, choose File > New Project.

  2. Sous Visual C# ou Visual Basic, choisissez .NET Core, puis, dans le volet central, choisissez Application console (.NET Core).Under Visual C# or Visual Basic, choose .NET Core, and then in the middle pane choose Console App (.NET Core).

    Si vous ne voyez pas le modèle de projet Application console (.NET Core), cliquez sur le lien Ouvrir Visual Studio Installer dans le volet gauche de la boîte de dialogue Nouveau projet.If you don't see the Console App (.NET Core) project template, click the Open Visual Studio Installer link in the left pane of the New Project dialog box. Visual Studio Installer est lancé.The Visual Studio Installer launches. Choisissez le développement .NET desktop et .NET Core charge de travail, puis choisissez modifier.Choose the .NET desktop development and .NET Core workload, then choose Modify.

  3. Tapez un nom tel que MyDbgApp et cliquez sur OK.Type a name like MyDbgApp and click OK.

    Visual Studio crée le projet.Visual Studio creates the project.

  4. Dans Program.cs ou Module1.vb, remplacez le code suivantIn Program.cs or Module1.vb, replace the following code

    class Program
    {
        static void Main(string[] args)
        {
        }
    }
    
    Module Module1
        Sub Main()
        End Sub
    End Module
    

    par le code suivant :with this code:

    class Program
    {
        private static void doWork()
        {
            LinkedList<int> c1 = new LinkedList<int>();
    
            c1.AddLast(10);
            c1.AddLast(20);
    
            LinkedList<int> c2 = new LinkedList<int>(c1);
            int i = c2.First.Value;
            int j = c2.First.Value;
            Console.Write("The first element is ");
            Console.Write(i);
            Console.Write("\n");
            Console.Write("The second element is ");
            Console.Write(j);
            Console.Write("\n");
    
        }
    
        static int Main()
        {
            // using namespace std;
            doWork();
            return 0;
    
        }
    }
    
    Imports System.Collections.Generic
    
    Namespace MyDbgApp
        Class Program
            Private Shared Sub doWork()
                Dim c1 As New LinkedList(Of Integer)()
    
                c1.AddLast(10)
                c1.AddLast(20)
    
                Dim c2 As New LinkedList(Of Integer)(c1)
                Dim i As Integer = c2.First.Value
                Dim j As Integer = c2.First.Value
                Console.Write("The first element is ")
                Console.Write(i)
                Console.Write(vbLf)
                Console.Write("The second element is ")
                Console.Write(j)
                Console.Write(vbLf)
    
            End Sub
    
            Public Shared Function Main() As Integer
                ' using namespace std;
                doWork()
                Return 0
    
            End Function
        End Class
    End Namespace
    

    Note

    En Visual Basic, vérifiez que l’objet de démarrage est défini sur Sub Main (Propriétés > Applications > Objet de démarrage).In Visual Basic, make sure the startup object is set to Sub Main (Properties > Application > Startup Object).

Définir un point d’arrêtSet a breakpoint

Un point d’arrêt est un marqueur qui indique où Visual Studio doit s’interrompre votre en cours d’exécution de code afin que vous puissiez examiner les valeurs des variables, ou le comportement de la mémoire, ou s’il faut ou non une branche de code est bien exécutée.A breakpoint is a marker that indicates where Visual Studio should suspend your running code so you can take a look at the values of variables, or the behavior of memory, or whether or not a branch of code is getting run. C’est la fonctionnalité élémentaire lors du débogage.It is the most basic feature in debugging.

  1. Pour définir le point d’arrêt, cliquez dans la marge à gauche de la doWork appel de fonction (ou sélectionnez la ligne de code et appuyez sur F9).To set the breakpoint, click in the gutter to the left of the doWork function call (or select the line of code and press F9).

    Définissez un point d’arrêtSet a breakpoint

  2. Appuyez maintenant sur F5 (ou choisissez Déboguer > Démarrer le débogage).Now press F5 (or choose Debug > Start Debugging).

    Atteindre un point d’arrêtHit a breakpoint

    Les temps de pause de débogueur où vous avez défini le point d’arrêt.The debugger pauses where you set the breakpoint. L’instruction où l’exécution du débogueur et l’application est en pause est indiquée par la flèche jaune.The statement where the debugger and app execution is paused is indicated by the yellow arrow. La ligne avec la doWork appel de fonction n’a pas encore été exécutée.The line with the doWork function call hasn't yet executed.

    Tip

    Si vous disposez d’un point d’arrêt dans une boucle ou une récursivité ou si vous avez de nombreux points d’arrêt que vous passez fréquemment via, utilisez un point d’arrêt conditionnel pour vous assurer que votre code est interrompue uniquement lorsque certaines conditions sont remplies.If you have a breakpoint in a loop or recursion, or if you have many breakpoints that you frequently step through, use a conditional breakpoint to make sure that your code is suspended ONLY when specific conditions are met. Un point d’arrêt conditionnel peut gagner du temps et il peut également apporter de plus facile à déboguer les problèmes qui sont difficiles à reproduire.A conditional breakpoint can save time and it can also make it easier to debug issues that are hard to reproduce.

Il existe différentes commandes pour indiquer au débogueur de continuer.There are different commands to instruct the debugger to continue. Nous montrons une commande de navigation de code utiles est une nouveauté de Visual Studio 2017.We show a useful code navigation command that is new in Visual Studio 2017.

Pendant la suspension sur le point d’arrêt, placez le curseur sur l’instruction c1.AddLast(20) jusqu'à ce que le vert exécuter jusqu’au clic bouton exécuter jusqu’au clic s’affiche, puis appuyez sur la Exécuter jusqu’au clic bouton.While paused at the breakpoint, hover over the statement c1.AddLast(20) until the green Run to click button Run to Click appears, and then press the Run to click button.

Exécuter jusqu’au clicRun to click

L’application poursuit son exécution, l’appel doWorket s’arrête à la ligne de code où vous avez cliqué sur le bouton.The app continues execution, calling doWork, and pauses on the line of code where you clicked the button.

Les commandes de clavier courantes utilisées pour parcourir le code inclure F10 et F11.Common keyboard commands used to step through code include F10 and F11. Pour plus d’instructions détaillées, consultez le Guide du débutant.For more in-depth instructions, see the Beginner's Guide.

Inspecter des variables dans un datatipInspect variables in a datatip

  1. Dans la ligne actuelle de code (indiquée par le pointeur d’exécution jaune), placez le curseur sur la c1 objet avec la souris pour afficher un datatip.In the current line of code (marked by the yellow execution pointer), hover over the c1 object with your mouse to show a datatip.

    Afficher un datatipView a datatip

    Le datatip vous indique la valeur actuelle de la c1 variable et vous permet d’inspecter ses propriétés.The datatip shows you the current value of the c1 variable and allows you to inspect its properties. Lors du débogage, si vous voyez une valeur que vous ne pensez pas, vous avez probablement un bogue dans les lignes précédentes ou d’appel de code.When debugging, if you see a value you don't expect, you probably have a bug in the preceding or calling lines of code.

  2. Développez le datatip pour examiner les valeurs de propriété actuelles de la c1 objet.Expand the datatip to look at the current property values of the c1 object.

  3. Si vous souhaitez épingler un datatip afin que vous pouvez continuer à afficher la valeur de c1 pendant que vous exécutez du code, cliquez sur l’icône d’épingle petit.If you want to pin the datatip so that you can continue to see the value of c1 while you execute code, click the small pin icon. (Vous pouvez déplacer le datatip épinglé à un emplacement unique et pratique).(You can move the pinned datatip to a convenient location.)

Modifier le code et continuer le débogageEdit code and continue debugging

Si vous identifiez une modification que vous souhaitez tester dans votre code au milieu d’une session de débogage, vous pouvez le faire, trop.If you identify a change that you want to test in your code while in the middle of a debugging session, you can do that, too.

  1. Cliquez sur la deuxième instance de c2.First.Value et modifiez c2.First.Value à c2.Last.Value.Click the second instance of c2.First.Value and change c2.First.Value to c2.Last.Value.

  2. Appuyez sur F10 (ou Déboguer > pas à pas principal) plusieurs fois pour faire avancer le débogueur et exécuter le code modifié.Press F10 (or Debug > Step Over) a few times to advance the debugger and execute the edited code.

    Modifier & ContinuerEdit and continue

    F10 avance l’instruction du débogueur une à une heure, mais les étapes sur les fonctions au lieu de pas à pas détaillé dans les (le code que vous ignorez encore s’exécute).F10 advances the debugger one statement at a time, but steps over functions instead of stepping into them (the code that you skip still executes).

Pour plus d’informations sur l’utilisation de modifier et continuer et sur les limitations de fonctionnalités, consultez Modifier & Continuer.For more information on using edit-and-continue and on feature limitations, see Edit and Continue.

Étapes suivantesNext steps

Dans ce didacticiel, vous avez appris comment démarrer le débogueur, parcourir le code et inspecter les variables.In this tutorial, you've learned how to start the debugger, step through code, and inspect variables. Voulez-vous obtenir une vue d’ensemble des fonctionnalités de débogueur ainsi que des liens vers d’autres informations.You may want to get a high-level look at debugger features along with links to more information.