Déboguer avec du code managé à l’aide du débogueur Visual StudioDebug 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 de bureau .NET 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

A point d’arrêt est un marqueur qui indique où Visual Studio interrompt votre en cours d’exécution de code afin de vous pouvez examiner les valeurs des variables ou le comportement de la mémoire, ou s’il faut ou non une branche de code la bonne exécution.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. Il s’agit de la fonctionnalité de base dans le 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 l’appel de fonction (ou sélectionnez la ligne de code, puis 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éfinir un point d’arrêtSet a breakpoint

  2. Appuyez 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 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 suspendue 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.

    Conseil

    Si vous disposez d’un point d’arrêt dans une boucle ou une récurrence ou si vous avez plusieurs points d’arrêt que vous fréquemment parcourez, utilisez un point d’arrêt conditionnel pour vous assurer que votre code est interrompu 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 pouvez gagner du temps et elle peut également rendre plus facile à déboguer les problèmes 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 plusieurs commandes pour instruire le débogueur pour continuer.There are different commands to instruct the debugger to continue. Nous affichons 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 à un point d’arrêt, placez le curseur sur l’instruction c1.AddLast(20) jusqu'à ce que le vert exécuter cliquer sur bouton exécuter. Cliquez ensuite sur s’affiche, puis appuyez sur la Exécuter cliquer sur 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.

Cliquez sur exécuterRun 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 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 obtenir des instructions plus 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), pointez sur le 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 prévoyez 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 le 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 lors de l’exécution de 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 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 la déclaration de débogueur une fois, mais les étapes sur les fonctions au lieu de pas à pas détaillé dans les (le code que vous passez toujours 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 & 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 d’inspecter des variables.In this tutorial, you've learned how to start the debugger, step through code, and inspect variables. Vous souhaiterez plus haut niveau sur les fonctionnalités du débogueur, ainsi que des liens vers plus d’informations.You may want to get a high-level look at debugger features along with links to more information.