Tutoriel : Apprendre à déboguer du code Visual Basic avec Visual Studio

Cet article présente les fonctionnalités du débogueur Visual Studio dans une procédure pas à pas. Pour un tour d’horizon plus général des fonctionnalités du débogueur, voir Présentation du débogueur. Lorsque vous déboguez votre application, cela signifie généralement que vous exécutez votre application avec le débogueur attaché. Lorsque vous effectuez cette tâche, le débogueur fournit de nombreuses façons de voir ce que fait votre code pendant qu’il s’exécute. Vous pouvez parcourir votre code pas à pas et examiner les valeurs stockées dans les variables, vous pouvez définir des espions sur des variables pour voir quand les valeurs changent, vous pouvez examiner le chemin d’exécution de votre code, voir si une branche de code s’exécute, etc. Si, avec cet exercice, c’est la première fois que vous essayez de déboguer du code, vous pouvez lire Débogage pour grands débutants avant de poursuivre cet article.

Bien que l’application de démonstration soit en Visual Basic, la plupart des fonctionnalités sont applicables à C#, C++, F#, Python, JavaScript et d’autres langages pris en charge par Visual Studio (F# ne prend pas en charge Modifier et continuer. F# et JavaScript ne prennent pas en charge la fenêtre Automatique). Les captures d’écran sont en Visual Basic.

Ce didacticiel présente les procédures suivantes :

  • Démarrer le débogueur et atteindre des points d’arrêt
  • Découvrir les commandes permettant de parcourir le code pas à pas dans le débogueur
  • Inspecter des variables dans des bulles d’informations et dans les fenêtres du débogueur
  • Examiner la pile des appels

Prérequis

Vous devez avoir installé Visual Studio 2019 ainsi que la charge de travail Développement multiplateforme .NET Core.

Si vous n’avez pas encore installé Visual Studio, accédez à la page Téléchargements Visual Studio pour l’installer gratuitement.

Si vous devez installer la charge de travail, mais que vous avez déjà installé Visual Studio, cliquez sur Outils>Obtenir les outils et fonctionnalités..., qui ouvre Visual Studio Installer. Visual Studio Installer est lancé. Choisissez la charge de travail Développement multiplateforme .NET Core, puis choisissez Modifier.

Si vous n’avez pas encore installé Visual Studio, accédez à la page Téléchargements Visual Studio pour l’installer gratuitement.

Si vous devez installer la charge de travail, mais que vous avez déjà installé Visual Studio, cliquez sur Outils>Obtenir les outils et fonctionnalités..., qui ouvre Visual Studio Installer. Visual Studio Installer est lancé. Choisissez la charge de travail Développement .NET Desktop, puis choisissez Modifier.

Créer un projet

Tout d’abord, vous créez un projet d’application console .NET Core. Le type de projet inclut tous les fichiers de modèle dont vous avez besoin au départ.

  1. Ouvrez Visual Studio. Si la fenêtre de démarrage n’est pas ouverte, sélectionnez Fichier>Fenêtre Démarrer.

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

  1. Dans la fenêtre Créer un projet, entrez console dans la zone de recherche. Ensuite, choisissez Visual Basic dans la liste des langages, puis choisissez Windows dans la liste des plateformes.

    Après avoir appliqué les filtres de langage et de plateforme, choisissez le modèle Application console pour .NET Core, puis sélectionnezSuivant.

    Screenshot showing the Create a new project window with 'console' in the search box, and 'Visual Basic' and 'Windows' selected for the Language and Platform filters. The Console Application project template is selected.

    Remarque

    Si vous ne voyez pas le modèle Application console, vous pouvez l’installer à partir de la fenêtre Créer un projet. Dans le Vous ne trouvez pas ce que vous cherchez ?, choisissez le lien Installer plus d’outils et de fonctionnalités. Ensuite, dans Visual Studio Installer, choisissez la charge de travail Développement multiplateforme .NET Core.

  2. Dans la fenêtre Configurer votre nouveau projet, entrez get-started-debugging dans la zone Nom du projet. Sélectionnez ensuite Suivant.

  3. Sélectionnez le framework cible recommandé (.NET 8.0 ou prise en charge à long terme), puis sélectionnez Créer.

  1. Dans la fenêtre Créer un projet, entrez console dans la zone de recherche. Ensuite, choisissez Visual Basic dans la liste des langages, puis choisissez Windows dans la liste des plateformes.

    Après avoir appliqué les filtres de langage et de plateforme, choisissez le modèle Application console pour .NET Core, puis sélectionnezSuivant.

    Screenshot showing the Create a new project window with 'console' in the search box, and 'Visual Basic' and 'Windows' selected for the Language and Platform filters. The Console Application project template is selected.

    Remarque

    Si vous ne voyez pas le modèle Application console, vous pouvez l’installer à partir de la fenêtre Créer un projet. Dans le Vous ne trouvez pas ce que vous cherchez ?, choisissez le lien Installer plus d’outils et de fonctionnalités. Dans le Visual Studio Installer, choisissez ensuite la charge de travail Développement de bureau .NET.

  2. Dans la fenêtre Configurer votre nouveau projet, entrez get-started-debugging dans la zone Nom du projet. Sélectionnez ensuite Suivant.

  3. Dans la fenêtre Informations supplémentaires, vérifiez que .NET 8.0 est sélectionné dans le menu déroulant Framework, puis sélectionnez Créer.

Visual Studio ouvre votre nouveau projet.

Création de l'application

Dans Program.vb, remplacez l’ensemble du code par défaut par le code suivant :

Imports System

Class ArrayExample
  Public Shared Sub Main()
    Dim letters As Char() = {"f"c, "r"c, "e"c, "d"c, " "c, "s"c, "m"c, "i"c, "t"c, "h"c}
    Dim name As String = ""
    Dim a As Integer() = New Integer(9) {}

    For i As Integer = 0 To letters.Length - 1
      name += letters(i)
      a(i) = i + 1
      SendMessage(name, a(i))
    Next

    Console.ReadKey()
  End Sub

  Private Shared Sub SendMessage(ByVal name As String, ByVal msg As Integer)
    Console.WriteLine("Hello, " & name & "! Count to " & msg)
  End Sub
End Class

Démarrez le débogueur !

  1. Appuyez sur F5 (Débogage > Démarrer le débogage) ou sur le bouton Démarrer le débogage dans la barre d’outils de débogage.

    F5 démarre l’application avec le débogueur attaché au processus de l’application, mais jusqu’à présent, nous n’avons rien fait de spécial pour examiner le code. L’application se charge juste et vous voyez la sortie de la console.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    Dans ce tutoriel, vous examinez cette application plus en détail à l’aide du débogueur et découvrez ses fonctionnalités.

  2. Arrêtez le débogueur en appuyant sur le bouton d’arrêt rouge (Maj + F5).

  3. Dans la fenêtre de console, appuyez sur une touche pour fermer la fenêtre de console.

  1. Appuyez sur F5 (Débogage > Démarrer le débogage), ou sélectionnez le bouton vert Démarrer le débogage dans la barre d’outils de débogage.

    Screenshot showing the Debug Toolbar with the green Start Debugging button highlighted.

    F5 démarre l’application avec le débogueur attaché au processus de l’application, mais jusqu’à présent, nous n’avons rien fait de spécial pour examiner le code. L’application se charge juste et vous voyez la sortie de la console.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    Dans ce tutoriel, vous examinez cette application plus en détail à l’aide du débogueur et découvrez ses fonctionnalités.

  2. Arrêtez le débogueur en appuyant sur (Maj + F5), ou sélectionnez le bouton rouge Arrêter le débogage dans la barre d’outils de débogage.

    Screenshot showing the Debug Toolbar with the red Stop Debugging button highlighted.

  3. Dans la fenêtre de console, appuyez sur une touche pour fermer la fenêtre de console.

Définir un point d’arrêt et démarrer le débogueur

  1. Dans la boucle For de la fonction Main, définissez un point d’arrêt en cliquant dans la marge gauche de la ligne de code suivante :

    name += letters(i)

    Un cercle rouge apparaît à l’endroit où vous avez défini le point d’arrêt.

    Les points d’arrêt sont l’une des fonctionnalités les plus élémentaires et les plus essentielles pour un débogage fiable. Quand vous définissez un point d'arrêt, Visual Studio interrompt l'exécution du code à l'emplacement du point d'arrêt pour vous permettre d'examiner les valeurs des variables, le comportement de la mémoire ou encore la bonne exécution ou non d'une branche de code.

  2. Appuyez sur F5 ou sur le boutonDémarrer le débogage. L’application démarre et le débogueur s’exécute jusqu’à la ligne de code où vous avez défini le point d’arrêt.

    Screenshot showing the Visual Studio code editor window with execution stopped at a breakpoint.

    La flèche jaune représente l’instruction sur laquelle le débogueur s’est interrompu. L’exécution du code s’interrompt au même point (cette instruction n’est pas encore exécutée).

    Si l’application n’est pas déjà en cours d’exécution, F5 démarre le débogueur et s’arrête au premier point d’arrêt. Sinon, F5 continue l’exécution de l’application jusqu’au point d’arrêt suivant.

    Les points d’arrêt sont une fonctionnalité pratique quand vous savez quelle ligne de code ou section de code vous voulez examiner en détail. Pour plus d’informations sur les différents types de point d’arrêt que vous pouvez définir, par exemple les points d’arrêt conditionnels, consultez Utilisation des points d’arrêt.

  1. Dans la boucle For de la fonction Main, définissez un point d’arrêt en cliquant dans la marge gauche de la ligne de code suivante :

    name += letters(i)

    Un cercle rouge apparaît à l’endroit où vous avez défini le point d’arrêt.

    Les points d’arrêt sont l’une des fonctionnalités les plus élémentaires et les plus essentielles pour un débogage fiable. Quand vous définissez un point d'arrêt, Visual Studio interrompt l'exécution du code à l'emplacement du point d'arrêt pour vous permettre d'examiner les valeurs des variables, le comportement de la mémoire ou encore la bonne exécution ou non d'une branche de code.

  2. Appuyez sur F5 (Débogage > Démarrer le débogage), ou cliquez sur le bouton Démarrer le débogage dans la barre d’outils de débogage pour que l’application démarre et que le débogueur s’exécute jusqu’à la ligne de code où vous définissez le point d’arrêt.

    Screenshot showing the Visual Studio Code editor window with execution stopped at a breakpoint.

    La flèche jaune représente l’instruction sur laquelle le débogueur s’est interrompu, ce qui suspend également l’exécution de l’application au même point (cette instruction n’est pas encore exécutée).

    Si l’application n’est pas déjà en cours d’exécution, F5 démarre le débogueur et s’arrête au premier point d’arrêt. Sinon, F5 continue l’exécution de l’application jusqu’au point d’arrêt suivant.

    Les points d’arrêt sont une fonctionnalité pratique quand vous savez quelle ligne de code ou section de code vous voulez examiner en détail. Pour plus d’informations sur les différents types de point d’arrêt que vous pouvez définir, par exemple les points d’arrêt conditionnels, consultez Utilisation des points d’arrêt.

Nous utilisons ici principalement des raccourcis clavier, car c’est un bon moyen d’exécuter rapidement votre application dans le débogueur (les commandes équivalentes, comme les commandes des menus, sont indiquées entre parenthèses).

  1. Pendant que l’exécution du code est interrompue dans la boucle For de la méthode Main, appuyez sur F11 (ou choisissez Débogage > Effectuer un pas à pas détaillé) à deux reprises pour passer à l’appel de la méthode SendMessage.

    Après avoir appuyé à deux reprises sur F11, vous devez vous trouver au niveau de cette ligne de code :

    SendMessage(name, a(i))

  2. Appuyez une nouvelle fois sur F11 pour effectuer un pas à pas détaillé dans la méthode SendMessage.

    Le pointeur jaune avance dans la méthode SendMessage.

    Screenshot showing a debug session in the Visual Studio code editor with execution paused after stepping into the 'SendMessage' method.

    F11 est la commande Pas à pas détaillé : elle fait avancer l’exécution de l’application une instruction à la fois. F11 est un bon moyen pour examiner le flux d’exécution de la façon la plus détaillée possible. (Pour avancer plus rapidement dans le code, il existe d’autres options, que nous allons vous montrer.) Par défaut, le débogueur ignore le code non-utilisateur (si vous souhaitez plus de détails, consultez Uniquement mon code).

    Supposons que vous ayez fini d’examiner la méthode SendMessage, et que vous souhaitiez sortir de la méthode mais rester dans le débogueur. Vous pouvez faire cela avec la commande Pas à pas sortant.

  3. Appuyez sur Maj + F11 (ou Débogage > Pas à pas sortant).

    Cette commande reprend l’exécution de l’application (et fait avancer le débogueur) jusqu’à ce que la méthode ou la fonction active soit retournée.

    Vous devez revenir dans la boucle For de la méthode Main, l’exécution étant interrompue au niveau de l’appel de la méthode SendMessage.

  4. Appuyez sur F11 à plusieurs reprises jusqu’à ce que vous reveniez à l’appel de la méthode SendMessage.

  5. Pendant que l’exécution du code est interrompue au niveau de l’appel de méthode, appuyez une seule fois sur F10 (ou choisissez Débogage > Effectuer un pas à pas principal).

    Screenshot showing a Debug session in the Visual Studio code editor with execution paused after stepping over the 'SendMessage' method call.

    Notez cette fois que le débogueur n’effectue pas de pas à pas détaillé dans la méthode SendMessage. F10 fait avancer le débogueur sans effectuer de pas à pas détaillé dans les fonctions ou les méthodes du code de votre application (le code s’exécute néanmoins). En appuyant sur F10 sur l’appel de méthode SendMessage (au lieu de F11), nous avons ignoré le code d’implémentation de SendMessage (qui potentiellement ne nous intéresse pas pour l’instant). Pour plus d’informations sur les différentes façons de vous déplacer dans votre code, consultez Parcourir le code dans le débogueur.

Dans cet article, nous utilisons les raccourcis clavier, car il s’agit d’un bon moyen d’exécuter rapidement votre application dans le débogueur (les commandes équivalentes, par exemple les commandes de menu, sont affichées entre parenthèses).

  1. Pendant que l’exécution du code est interrompue dans la boucle For de la méthode Main, appuyez sur F11 (ou choisissez Débogage > Effectuer un pas à pas détaillé) à deux reprises pour passer à l’appel de la méthode SendMessage.

    Après avoir appuyé à deux reprises sur F11, vous devez vous trouver au niveau de cette ligne de code :

    SendMessage(name, a(i))

  2. Appuyez une nouvelle fois sur F11 pour effectuer un pas à pas détaillé dans la méthode SendMessage.

    Le pointeur jaune avance dans la méthode SendMessage.

    Screenshot showing a debug session in the Visual Studio Code editor with execution paused after stepping into the 'SendMessage' method.

    F11 correspond à la commande Effectuer un pas à pas détaillé. Elle permet d’exécuter l’application une instruction à la fois. F11 est un bon moyen pour examiner le flux d’exécution de la façon la plus détaillée possible. (Pour avancer plus rapidement dans le code, il existe d’autres options, que nous allons vous montrer.) Par défaut, le débogueur ignore le code non-utilisateur (si vous souhaitez plus de détails, consultez Uniquement mon code).

    Supposons que vous ayez fini d’examiner la méthode SendMessage, et que vous souhaitiez sortir de la méthode mais rester dans le débogueur. Vous pouvez faire cela avec la commande Pas à pas sortant.

  3. Appuyez sur Maj + F11 (ou Débogage > Pas à pas sortant).

    Cette commande reprend l’exécution de l’application (et fait avancer le débogueur) jusqu’à ce que la méthode ou la fonction active soit retournée.

    Vous devez revenir dans la boucle For de la méthode Main, l’exécution étant interrompue au niveau de l’appel de la méthode SendMessage.

  4. Appuyez sur F11 à plusieurs reprises jusqu’à ce que vous reveniez à l’appel de la méthode SendMessage.

  5. Pendant que l’exécution du code est interrompue au niveau de l’appel de méthode, appuyez une seule fois sur F10 (ou choisissez Débogage > Effectuer un pas à pas principal).

    Screenshot showing a Debug session in the Visual Studio Code editor with execution paused after stepping over the 'SendMessage' method call.

    Notez cette fois que le débogueur n’effectue pas de pas à pas détaillé dans la méthode SendMessage. F10 fait avancer le débogueur sans effectuer de pas à pas détaillé dans les fonctions ou les méthodes du code de votre application (le code s’exécute néanmoins). En appuyant sur F10 sur l’appel de méthode SendMessage (au lieu de F11), nous avons ignoré le code d’implémentation de SendMessage (qui potentiellement ne nous intéresse pas pour l’instant). Pour plus d’informations sur les différentes façons de vous déplacer dans votre code, consultez Parcourir le code dans le débogueur.

  1. Appuyez sur F5 pour avancer à nouveau au point d’arrêt.

  2. Dans l’éditeur de code, faites défiler vers le bas, puis pointez sur la méthode Console.WriteLine dans la méthode SendMessage jusqu’à ce que le bouton vert Exécuter jusqu’au clic apparaisse. L’info-bulle du bouton indique « Lancer l’exécution jusqu’ici. »

    Screenshot showing the Run to Click button with tooltip highlighted on the left side of the code editor window.

    Remarque

    Le bouton Exécuter jusqu’au clic est une nouveauté de Visual Studio 2017. (Si vous ne voyez pas le bouton avec la flèche verte, utilisez à la place F11 dans cet exemple pour faire avancer le débogueur jusqu’au bon endroit.)

  3. Sélectionnez le bouton Exécuter jusqu’au clic.

    Le débogueur avance jusqu’à la méthode Console.WriteLine.

    L’utilisation de ce bouton revient à définir un point d’arrêt temporaire. Exécuter jusqu’au clic est pratique pour vous déplacer rapidement dans une zone visible du code d’application (que vous pouvez sélectionner dans n’importe quel fichier ouvert).

  1. Appuyez sur F5 pour avancer à nouveau au point d’arrêt.

  2. Dans l’éditeur de code, faites défiler vers le bas, puis pointez sur la méthode Console.WriteLine dans la méthode SendMessage jusqu’à ce que le bouton vert Exécuter jusqu’au clic apparaisse. L’info-bulle du bouton indique « Lancer l’exécution jusqu’ici. »

    Screenshot showing the Run to Click button with tooltip highlighted on the left side of the code editor window.

  3. Sélectionnez le bouton Exécuter jusqu’au clic.

    Le débogueur avance jusqu’à la méthode Console.WriteLine.

    L’utilisation de ce bouton revient à définir un point d’arrêt temporaire. Exécuter jusqu’au clic est pratique pour vous déplacer rapidement dans une zone visible du code d’application (que vous pouvez sélectionner dans n’importe quel fichier ouvert).

Redémarrer rapidement votre application

Sélectionnez le bouton Redémarrerdans la barre d’outils Déboguer (Ctrl + Maj + F5).

Quand vous appuyez sur Redémarrer, vous gagnez du temps par rapport à l’action consistant à arrêter l’application, puis à redémarrer le débogueur. Le débogueur se met en pause sur le premier point d’arrêt qui est atteint par l’exécution du code.

Le débogueur s’arrête à nouveau au point d’arrêt que vous avez défini dans la boucle For.

Pour redémarrer votre application, appuyez sur la combinaison de touches Ctrl + Maj + F5. Cela vous permet de gagner du temps par rapport à l’arrêt de l’application et au redémarrage du débogueur. Le débogueur se met en pause sur le premier point d’arrêt qui est atteint par l’exécution du code.

Le débogueur s’arrête à nouveau au point d’arrêt que vous avez défini dans la boucle For.

Inspecter des variables avec des bulles d’informations (datatips)

Les fonctionnalités qui vous permettent d’inspecter des variables sont parmi les plus pratiques du débogueur : vous pouvez faire cela de différentes façons. Souvent, lorsque vous essayez de déboguer un problème, vous tentez de déterminer si les variables stockent bien les valeurs prévues à un moment donné.

  1. Pendant que l’exécution du code est interrompue sur l’instruction name += letters[i], pointez sur la variable letters pour voir sa valeur par défaut, la valeur du premier élément du tableau, "f"c.

  2. Pointez ensuite sur la variable name pour voir sa valeur actuelle, une chaîne vide.

  3. Appuyez à plusieurs reprises sur F5 (ou Débogage>Continuer) pour itérer plusieurs fois dans la boucle For. À chaque interruption au niveau du point d’arrêt, pointez sur la variable name à chaque fois pour vérifier sa valeur.

    Screenshot showing debug execution stopped in the code editor with the 'name' variable highlighted and a data tip showing the value as 'fre'.

    La valeur de la variable change à chaque itération de la boucle For, en affichant les valeurs de f, puis fr, puis fre, etc.

    Souvent, lors du débogage, vous voulez un moyen rapide de vérifier les valeurs des propriétés sur des variables pour voir si elles stockent bien les valeurs prévues. Les bulles d’informations sont un bon moyen de faire cela.

Les fonctionnalités qui vous permettent d’inspecter des variables sont parmi les plus pratiques du débogueur : vous pouvez faire cela de différentes façons. Souvent, lorsque vous essayez de déboguer un problème, vous tentez de déterminer si les variables stockent bien les valeurs prévues à un moment donné.

  1. Pendant que l’exécution du code est interrompue sur l’instruction name += letters[i], pointez sur la variable letters pour voir sa valeur par défaut, la valeur du premier élément du tableau, "f"c.

  2. Pointez ensuite sur la variable name pour voir sa valeur actuelle, une chaîne vide.

  3. Appuyez à plusieurs reprises sur F5 (ou Débogage>Continuer) pour itérer plusieurs fois dans la boucle For. À chaque interruption au niveau du point d’arrêt, pointez sur la variable name à chaque fois pour vérifier sa valeur.

    Screenshot showing debug execution stopped in the code editor with the name variable highlighted and a data tip showing the value.

    La valeur de la variable change à chaque itération de la boucle For, en affichant les valeurs de f, puis fr, puis fre, etc.

    Souvent, lors du débogage, vous voulez un moyen rapide de vérifier les valeurs des propriétés sur des variables pour voir si elles stockent bien les valeurs prévues. Les bulles d’informations sont un bon moyen de faire cela.

Inspecter des variables avec les Fenêtres Automatique et Variables locales

  1. Examinez la fenêtre Automatique en bas de l’éditeur de code.

    Si elle est fermée, ouvrez-la pendant que l’exécution du code est interrompue dans le débogueur en choisissant Déboguer>Windows>Automatique.

    Dans la fenêtre Automatique, vous voyez des variables et leur valeur actuelle. La fenêtre Automatique montre toutes les variables utilisées dans la ligne active ou la ligne précédente (consultez la documentation pour les comportements selon le langage).

  2. Ensuite, examinons la fenêtre Variables locales, sous un onglet à côté de la fenêtre Automatique.

  3. Développez la variable letters pour afficher les éléments qu’elle contient.

    Screenshot showing the Locals Window with the 'letters' variable expanded to show the value and type of the elements it contains.

    La fenêtre Variables locales montre les variables qui se trouvent dans l’étendue actuelle, c’est-à-dire le contexte d’exécution actif.

  1. Examinez la fenêtre Automatique en bas de l’éditeur de code.

    Si elle est fermée, ouvrez-la pendant que l’exécution du code est interrompue dans le débogueur en choisissant Déboguer>Windows>Automatique.

    Dans la fenêtre Automatique, vous voyez des variables et leur valeur actuelle. La fenêtre Automatique montre toutes les variables utilisées dans la ligne active ou la ligne précédente (consultez la documentation pour les comportements selon le langage).

  2. Ensuite, examinons la fenêtre Variables locales, sous un onglet à côté de la fenêtre Automatique.

  3. Développez la variable letters pour afficher les éléments qu’elle contient.

    Screenshot showing the Locals Window with the 'letters' variable expanded to show the value and type of the elements it contains.

    La fenêtre Variables locales montre les variables qui se trouvent dans l’étendue actuelle, c’est-à-dire le contexte d’exécution actif.

Définir un espion

Dans la fenêtre principale de l’éditeur de code, cliquez avec le bouton droit sur la variable name, puis choisissez Ajouter un espion.

La fenêtre Espion s’ouvre en bas de l’éditeur de code. Vous pouvez utiliser une fenêtre Espion pour spécifier une variable (ou une expression) que vous voulez observer.

À présent, vous avez un espion défini sur la variable name, et vous pouvez voir sa valeur changer au fur et à mesure que vous vous déplacez dans le débogueur. Contrairement à d’autres fenêtres de variables, la fenêtre Espion présente toujours les variables que vous observez (elles apparaissent en grisé quand elles sont en dehors de l’étendue).

Vous pouvez spécifier une variable, ou une expression, sur laquelle vous souhaitez garder un œil lorsque vous parcourez le code, en l’ajoutant à la fenêtre Espion.

  1. Pendant que le débogueur est suspendu, cliquez avec le bouton droit sur la variable name et choisissez Ajouter un espion.

    La fenêtre Espion s’ouvre par défaut en bas de l’éditeur de code.

  2. Maintenant que vous avez défini un espion sur la variable name, parcourez votre code pour voir la valeur de la variable name changer à chaque itération de la boucle for.

    Contrairement à d’autres fenêtres de variables, la fenêtre Espion présente toujours les variables que vous observez. Les variables hors de l’étendue sont affichées comme indisponibles.

Pour plus d’informations sur la fenêtre Espion, consultez Observer des variables avec les fenêtres Espion.

Examiner la pile des appels

  1. Pendant que l’exécution est interrompue dans la boucle For, sélectionnez la fenêtre Pile des appels, qui est ouverte par défaut dans le volet inférieur droit.

    Si elle est fermée, ouvrez-la pendant que l’exécution du code est interrompue dans le débogueur en choisissant Déboguer>Windows>Pile des appels.

  2. Sélectionnez F11 plusieurs fois, jusqu’à ce que le débogueur place l’application en pause dans la méthode SendMessage. Regardez la fenêtre Pile des appels.

    Screenshot showing the Visual Studio Call Stack window with a SendMessage method call highlighted in the top line.

    La fenêtre Pile des appels montre l’ordre dans lequel les méthodes et les fonctions sont appelées. La ligne du haut montre la fonction active (méthode SendMessage dans cette application). La deuxième ligne montre que SendMessage a été appelée à partir de la méthode Main, etc.

    Notes

    La fenêtre Pile des appels est similaire à la perspective Débogage dans certains IDE, comme Eclipse.

    La pile des appels est un bon moyen d’examiner et de comprendre le flux d’exécution d’une application.

    Vous pouvez double-cliquer sur une ligne de code pour accéder à ce code source ; cela change également l’étendue active sous inspection du débogueur. Cette action ne fait pas avancer le débogueur.

    Vous pouvez également utiliser les menus contextuels de la fenêtre Pile des appels pour faire d’autres choses. Par exemple, vous pouvez insérer des points d’arrêt dans des fonctions spécifiées, faire avancer le débogueur avec Exécuter jusqu’au curseur et aller examiner le code source. Pour plus d’informations, consultez Guide pratique pour examiner la pile des appels.

  1. Pendant que l’exécution est interrompue dans la boucle For, sélectionnez la fenêtre Pile des appels, qui est ouverte par défaut dans le volet inférieur droit.

    Si elle est fermée, ouvrez-la pendant que l’exécution du code est interrompue dans le débogueur en choisissant Déboguer>Windows>Pile des appels.

  2. Sélectionnez F11 plusieurs fois, jusqu’à ce que le débogueur place l’application en pause dans la méthode SendMessage. Regardez la fenêtre Pile des appels.

    Screenshot showing the Visual Studio Call Stack window with a SendMessage method call highlighted in the top line.

    La fenêtre Pile des appels montre l’ordre dans lequel les méthodes et les fonctions sont appelées. La ligne du haut montre la fonction active (méthode SendMessage dans cette application). La deuxième ligne montre que SendMessage a été appelée à partir de la méthode Main, etc.

    Notes

    La fenêtre Pile des appels est similaire à la perspective Débogage dans certains IDE, comme Eclipse.

    La pile des appels est un bon moyen d’examiner et de comprendre le flux d’exécution d’une application.

    Vous pouvez double-cliquer sur une ligne de code pour accéder à ce code source ; cela change également l’étendue active sous inspection du débogueur. Cette action ne fait pas avancer le débogueur.

    Vous pouvez également utiliser les menus contextuels de la fenêtre Pile des appels pour faire d’autres choses. Par exemple, vous pouvez insérer des points d’arrêt dans des fonctions spécifiées, faire avancer le débogueur avec Exécuter jusqu’au curseur et aller examiner le code source. Pour plus d’informations, consultez Guide pratique pour examiner la pile des appels.

Changer le flux d’exécution

  1. Appuyez sur F11 à deux reprises pour exécuter la méthode Console.WriteLine.

  2. Le débogueur étant interrompu dans l’appel de méthode SendMessage, utilisez la souris pour saisir la flèche jaune ou le pointeur d’exécution (dans la marge gauche), puis faites glisser le pointeur d’une ligne vers le haut jusqu’à l’instruction Console.WriteLine.

  3. Appuyez sur F11.

    Le débogueur réexécute la méthode Console.WriteLine (vous voyez cette action dans la sortie de la fenêtre de console).

    En changeant le flux d’exécution, vous pouvez effectuer des opérations comme tester d’autres chemins d’exécution du code ou réexécuter du code sans devoir redémarrer le débogueur.

    Avertissement

    Vous devez rester prudent avec cette fonctionnalité, vous pouvez voir un avertissement dans l’info-bulle. D’autres avertissements peuvent également s’afficher. Le fait de déplacer le pointeur ne peut pas rétablir votre application à un état antérieur.

  4. Appuyez sur F5 pour poursuivre l’exécution de l’application.

    Félicitations ! Vous avez terminé ce didacticiel.

Étapes suivantes

Dans ce tutoriel, vous avez découvert comment démarrer le débogueur, parcourir le code pas à pas et inspecter des variables. Vous pouvez obtenir une présentation générale des fonctionnalités du débogueur et suivre des liens qui donnent accès à plus d’informations.