Tutoriel : Apprendre à déboguer du code C# à l’aide de Visual Studio
Cet article présente les fonctionnalités du débogueur Visual Studio dans une procédure pas à pas. Si vous souhaitez une vue de niveau supérieur des fonctionnalités du débogueur, consultez Premier aperçu du débogueur. Lorsque vous déboguez votre application, cela signifie généralement que vous exécutez votre application avec le débogueur activé. Lorsque vous effectuez cette tâche, le débogueur fournit de nombreuses façons de voir ce que fait votre code pendant son exécution. Vous pouvez parcourir votre code et examiner les valeurs stockées dans des variables, vous pouvez définir des montres sur les variables pour voir quand les valeurs changent, vous pouvez examiner le chemin d’exécution de votre code, voir si une branche de code est en cours d’exécution, et ainsi de suite. 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 C#, la plupart des fonctionnalités s’appliquent à C++, Visual Basic, F#, Python, JavaScript et d’autres langages pris en charge par Visual Studio (F# ne prend pas en charge edit-and-continue). F# et JavaScript ne prennent pas en charge la fenêtre Autos). Les captures d’écran sont en C#.
Dans ce tutoriel, vous allez :
- Démarrer le débogueur et atteindre des points d’arrêt
- Découvrir les commandes pour parcourir le code 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
Conditions préalables
Visual Studio 2022 et la charge de travail Développement .NET Desktop doivent être installés.
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 Visual Studio est déjà installé, accédez à Tools>Obtenir des outils et des fonctionnalités..., ce qui ouvre Visual Studio Installer. Le programme d’installation de Visual Studio démarre. Choisissez la charge de travail Développement multiplateforme .NET Core, puis choisissez Modifier.
Si vous disposez déjà de Visual Studio, mais que la charge de travail Développement .NET Desktop n’est pas installée, accédez à Outils>Obtenir des outils et des fonctionnalités..., ce qui lance Visual Studio Installer. Dans Visual Studio Installer, choisissez la charge de travail Développement .NET Desktop, puis Modifier.
Créer un projet
Tout d’abord, vous créez un projet d’application console .NET Core. Le type de projet est fourni avec tous les fichiers de modèle dont vous avez besoin, avant même d’avoir ajouté quoi que ce soit !
Ouvrez Visual Studio. 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.
Dans la fenêtre Créer un projet, entrez console dans la zone de recherche. Ensuite, choisissez C# dans la liste de langues, puis choisissez Windows dans la liste plateforme.
Après avoir appliqué les filtres de langue et de plateforme, choisissez le modèle Application console pour .NET Core, puis sélectionnez Suivant.
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 message « Vous ne trouvez pas ce que vous cherchez ? », choisissez le lien Installer d’autres outils et fonctionnalités. Ensuite, dans le programme d'installation de Visual Studio, choisissez le workload de développement multiplateforme .NET Core .
Dans la fenêtre Configurer votre nouveau projet, entrez GetStartedDebugging dans le champ Nom du projet. Sélectionnez ensuite Suivant.
Sélectionnez le framework cible recommandé (prise en charge à long terme ou .NET 8.0), puis sélectionnez Créer.
Dans la fenêtre Créer un projet, entrez console dans la zone de recherche. Ensuite, choisissez C# dans la liste de langues, puis choisissez Windows dans la liste plateforme.
Après avoir appliqué les filtres de langue et de plateforme, choisissez le modèle application console, puis sélectionnez Suivant.
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 message Vous ne trouvez pas ce que vous cherchez ?, choisissez le lien Installer d’autres outils et fonctionnalités. Dans le Visual Studio Installer, choisissez ensuite la charge de travail Développement .NET Desktop.
Dans la fenêtre Configurer votre nouveau projet, saisissez GetStartedDebugging dans la zone Nom du projet. Sélectionnez ensuite suivant.
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éer l’application
Dans Program.cs, remplacez tout le code par défaut par le code suivant :
using System;
class ArrayExample
{
static void Main()
{
char[] letters = { 'f', 'r', 'e', 'd', ' ', 's', 'm', 'i', 't', 'h'};
string name = "";
int[] a = new int[10];
for (int i = 0; i < letters.Length; i++)
{
name += letters[i];
a[i] = i + 1;
SendMessage(name, a[i]);
}
Console.ReadKey();
}
static void SendMessage(string name, int msg)
{
Console.WriteLine("Hello, " + name + "! Count to " + msg);
}
}
Démarrez le débogueur !
Appuyez sur F5 (Déboguer > Démarrer le débogage) ou sur le bouton Démarrer le débogage
dans la barre d’outils Debug.
F5 démarre l’application avec le débogueur attaché au processus d’application, mais pour le moment, nous n’avons rien fait spécial pour examiner le code. Ainsi, l’application se charge simplement et vous voyez cette sortie de 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 allez examiner plus en plus près cette application à l’aide du débogueur et examiner les fonctionnalités du débogueur.
Arrêtez le débogueur en appuyant sur le bouton d’arrêt rouge (Maj + F5).
Dans la fenêtre de console, appuyez sur une touche pour fermer la fenêtre de console.
Principalement, nous utilisons des raccourcis clavier ici, car il s’agit d’un moyen rapide d’exécuter des commandes de débogueur. Les commandes équivalentes, telles que les commandes de barre d’outils ou de menu, sont également indiquées.
Pour démarrer le débogueur, sélectionnez F5, ou choisissez le bouton Cible de débogage dans la barre d’outils Standard, ou choisissez le bouton Démarrer le débogage dans la barre d’outils Débogage, ou choisissez Déboguer>Démarrer le débogage dans la barre de menus.
F5 démarre l’application avec le débogueur attaché au processus d’application. Comme nous n’avons rien fait de spécial pour examiner le code, l’application s’exécute jusqu’à la fin 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
Pour arrêter le débogueur, sélectionnez Maj+F5, ou choisissez le bouton Arrêter le débogage dans la barre d’outils Déboguer, ou choisissez Déboguer>Arrêter le débogage dans la barre de menus.
Dans la fenêtre de console, sélectionnez n’importe quelle clé pour fermer la fenêtre de console.
Définir un point d’arrêt et démarrer le débogueur
Dans la boucle
for
de la fonctionMain
, définissez un point d’arrêt en cliquant dans la marge gauche sur la ligne de code suivante :name += letters[i];
Un cercle rouge
apparaît où vous définissez le point d’arrêt.
Les points d’arrêt sont l’une des fonctionnalités les plus élémentaires et essentielles du débogage fiable. Un point d’arrêt indique où Visual Studio doit suspendre votre code en cours d’exécution afin de pouvoir examiner les valeurs des variables, ou le comportement de la mémoire, ou si une branche de code est en cours d’exécution.
Appuyez sur F5 ou sur le boutonDémarrer le débogage.
L’application démarre et le débogueur s’exécute sur la ligne de code où vous définissez le point d’arrêt.
La flèche jaune représente l’instruction sur laquelle le débogueur s'est arrêté, suspendant ainsi l’exécution de l’application à ce point précis (cette instruction n’a pas encore été 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 d’exécuter l’application jusqu'au point d’arrêt suivant.
Les points d’arrêt sont une fonctionnalité utile lorsque vous connaissez la ligne de code ou la section de code que vous souhaitez examiner en détail. Pour plus d’informations sur les différents types de points d’arrêt que vous pouvez définir, tels que les points d’arrêt conditionnels, consultez Utilisation de points d’arrêt.
Dans la boucle
for
de la fonctionMain
, définissez un point d’arrêt en cliquant dans la marge gauche sur la ligne de code suivante :name += letters[i];
Un cercle rouge apparaît où vous définissez le point d’arrêt.
Les points d’arrêt sont une fonctionnalité essentielle d'un débogage efficace. Vous pouvez définir des points d’arrêt dans lesquels Visual Studio doit suspendre votre code en cours d’exécution afin de pouvoir examiner les valeurs des variables ou le comportement de la mémoire, ou savoir si une branche de code est en cours d’exécution.
Pour démarrer le débogage, sélectionnez F5, ou choisissez le bouton Debug Target dans la barre d’outils Standard, ou choisissez le bouton Démarrer le débogage dans la barre d’outils Débogage, ou choisissez Déboguer>Démarrer le débogage dans la barre de menus. 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.
La flèche jaune pointe vers l’instruction sur laquelle le débogueur s’est arrêté. L’exécution de l’application est arrêtée au même point, et l’instruction n’a pas encore été exécutée.
Lorsque l’application n’est pas en cours d’exécution, F5 démarre le débogueur, qui exécute l’application jusqu’à ce qu’elle atteigne le premier point d’arrêt. Si l’application est suspendue à un point d’arrêt, F5 continue d’exécuter l’application jusqu’à ce qu’elle atteigne le point d’arrêt suivant.
Les points d’arrêt sont une fonctionnalité utile lorsque vous connaissez la ligne ou la section du code que vous souhaitez examiner en détail. Pour plus d’informations sur les différents types de points d’arrêt que vous pouvez définir, tels que les points d’arrêt conditionnels, consultez Utilisation de points d’arrêt.
Naviguer dans le code et inspecter les données à l’aide de conseils sur les données
Principalement, nous utilisons les raccourcis clavier ici, car il est judicieux d’obtenir rapidement l’exécution de votre application dans le débogueur (commandes équivalentes telles que les commandes de menu sont affichées entre parenthèses).
Pendant que l’exécution du code est suspendue sur l’instruction
name += letters[i]
, pointez sur la variableletters
et vous voyez sa valeur par défaut, la valeur du premier élément du tableau,char[10]
.Les fonctionnalités qui vous permettent d’inspecter les variables sont l’une des fonctionnalités les plus utiles du débogueur, et il existe différentes façons de le faire. Souvent, lorsque vous essayez de déboguer un problème, vous tentez de déterminer si les variables stockent les valeurs que vous attendez qu’elles aient à un moment donné.
Développez la variable
letters
pour afficher ses propriétés, qui incluent tous les éléments que la variable contient.Ensuite, pointez sur la variable
name
et vous voyez sa valeur actuelle, une chaîne vide.Appuyez deux fois sur F10 (ou choisissez Déboguer > Pas à pas principal) pour avancer jusqu’à l’appel de la méthode
SendMessage
, puis appuyez sur F10 encore une fois.F10 avance le débogueur vers l’instruction suivante sans passer à pas dans les fonctions ou méthodes de votre code d’application (le code s’exécute toujours). En appuyant sur F10 sur l’appel de méthode
SendMessage
, nous avons ignoré le code d’implémentation deSendMessage
(qui potentiellement ne nous intéresse pas pour l’instant).Appuyez plusieurs fois sur F10 (ou Déboguer>Pas à pas principal) pour itérer plusieurs fois dans la boucle
for
, en vous arrêtant à nouveau au point d’arrêt et en pointant sur la variablename
à chaque fois pour vérifier sa valeur.La valeur de la variable change avec chaque itération de la boucle
for
, affichant les valeurs def
, puisfr
, puisfre
, et ainsi de suite. Pour faire avancer le débogueur dans la boucle plus rapidement dans ce scénario, vous pouvez appuyer sur F5 (ou choisir Déboguer>Continuer), ce qui vous permet d’atteindre le point d’arrêt au lieu de l’instruction suivante.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.
Pendant que l’exécution du code reste suspendue dans la boucle
for
dans la méthodeMain
, appuyez sur F11 (ou choisissez Déboguer > Pas à pas dans) jusqu’à ce que vous arrêtiez à l’appel de méthodeSendMessage
.Vous devez vous trouver sur cette ligne de code :
SendMessage(name, a[i]);
Appuyez sur F11 une fois de plus pour entrer dans la méthode
SendMessage
.Le pointeur jaune avance dans la méthode
SendMessage
.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 d’examiner le flux d’exécution en détail. Par défaut, le débogueur ignore le code non-utilisateur (si vous souhaitez plus de détails, consultez Simplement 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.Appuyez sur Maj + F11 (ou Débogage > Pas à pas sortant).
Cette commande reprend l’exécution de l’application (et avance le débogueur) jusqu’à ce que la méthode ou la fonction actuelle retourne.
Vous devez revenir dans la boucle
for
de la méthodeMain
, l’exécution étant interrompue au niveau de l’appel de la méthodeSendMessage
. 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.
Pendant que l’exécution du code est suspendue sur l’instruction
name += letters[i]
, pointez la souris sur la variableletters
pour voir une infobulle affichant la taille du tableau et le type d’élément,char[10]
.Remarque
L’une des fonctionnalités les plus utiles du débogueur est sa capacité à inspecter une variable. Souvent, lorsque vous essayez de déboguer un problème, vous tentez de déterminer si les variables ont des valeurs attendues à un moment donné. L’affichage des conseils sur les données est un bon moyen de vérifier cela.
Développez la variable
letters
pour afficher tous ses éléments de tableau et leurs valeurs.Pointez sur la variable
name
pour voir sa valeur actuelle, qui est une chaîne vide.Pour faire passer le débogueur à l’instruction suivante, sélectionnez F10, ou choisissez le bouton Passer par-dessus dans la barre d’outils Déboguer, ou choisissez Déboguer>Passer par-dessus dans la barre de menus. Sélectionnez F10 deux fois plus pour passer l’appel de méthode
SendMessage
.F10 fait avancer le débogueur sans effectuer de pas à pas détaillé dans les fonctions ou les méthodes, mais leur code s’exécute néanmoins. De cette façon, nous avons évité de déboguer le code dans la méthode
SendMessage
, qui ne nous intéresse pas actuellement.Pour effectuer une itération au sein de la boucle
for
plusieurs fois, sélectionnez F10 à plusieurs reprises. Pendant chaque itération de boucle, effectuez une pause au point d’arrêt, puis pointez sur la variablename
pour vérifier sa valeur dans l’info-bulle de données.La valeur de la variable change avec chaque itération de la boucle
for
, affichant les valeurs def
, puisfr
, puisfre
, et ainsi de suite. Pour faire avancer le débogueur dans la boucle plus rapidement, sélectionnez plutôt F5, qui progresse jusqu’à votre point d’arrêt au lieu de l’instruction suivante.Pendant que l’exécution du code est suspendue dans la boucle
for
de la méthodeMain
, sélectionnez F11, ou choisissez le bouton Pas à pas dans dans la barre d’outils Debug, ou choisissez Déboguer>Pas à pas dans dans la barre de menus jusqu’à atteindre l’appel de méthodeSendMessage
.Le débogueur doit être suspendu à cette ligne de code :
SendMessage(name, a[i]);
Pour passer à pas à la méthode
SendMessage
, sélectionnez à nouveau F11.Le pointeur jaune avance dans la méthode
SendMessage
.F11 vous aide à examiner plus en détail le flux d’exécution de votre code. Pour passer à une méthode à partir d’un appel de méthode, sélectionnez F11 . Par défaut, le débogueur évite d'entrer dans les méthodes non utilisateur. Pour en savoir plus sur le débogage de code non-utilisateur, consultez Simplement mon code.
Une fois que vous avez terminé le débogage de la méthode
SendMessage
, vous êtes prêt à revenir à la bouclefor
de la méthodemain
.Pour quitter la méthode
SendMessage
, sélectionnez Maj+F11, ou cliquez sur le bouton Pas à pas sortant dans la barre d’outils Déboguer, ou choisissez Déboguer>Pas à pas sortant dans la barre de menus.La commande Pas à pas sortant reprend l’exécution de l’application et fait avancer le débogueur jusqu’au retour de la méthode ou fonction active.
Vous voyez le pointeur jaune revenir dans la boucle
for
de la méthodeMain
, arrêté à l'appel de la méthodeSendMessage
. 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.
Naviguer dans le code à l’aide de Run to Click
Sélectionnez F5 pour passer à nouveau au point d’arrêt.
Dans l’éditeur de code, faites défiler vers le bas, puis pointez sur la méthode
Console.WriteLine
dans la méthodeSendMessage
jusqu’à ce que le bouton vert Exécuter jusqu’au clicapparaisse. L’info-bulle du bouton indique « Lancer l’exécution jusqu’ici. »
Remarque
Le bouton Exécuter jusqu’au clic est une nouveauté de Visual Studio 2017. (Si vous ne voyez pas le bouton flèche verte, utilisez F11 dans cet exemple pour faire avancer le débogueur à l’emplacement approprié.)
Sélectionnez le bouton Exécuter jusqu’au clic.
Le débogueur avance jusqu’à la méthode
Console.WriteLine
.L’utilisation de ce bouton est similaire à la définition d’un point d’arrêt temporaire. Run to Click est pratique pour naviguer rapidement dans une région visible du code de l’application (que vous pouvez sélectionner dans n’importe quel fichier ouvert).
Sélectionnez F5 pour passer à nouveau au point d’arrêt.
Dans l’éditeur de code, pointez sur l’appel de méthode
Console.WriteLine
dans la méthodeSendMessage
jusqu’à ce que le bouton Exécuter pour cliquer sur s’affiche. L’info-bulle du bouton indique « Lancer l’exécution jusqu’ici. »Sélectionnez le bouton Exécuter jusqu’au clic. Sinon, avec votre curseur à l’instruction
Console.WriteLine
, sélectionnez Ctrl+F10. Vous pouvez également faire un clic droit sur l'appel de méthodeConsole.WriteLine
, puis sélectionner Exécuter jusqu'au curseur dans le menu contextuel.Le débogueur avance jusqu’à l’appel de méthode
Console.WriteLine
.L’utilisation du bouton Exécuter pour cliquer sur est similaire à la définition d’un point d’arrêt temporaire et est pratique pour vous déplacer rapidement dans une région visible du code de votre application dans un fichier ouvert.
Redémarrer rapidement votre application
Sélectionnez le bouton Redémarrerdans la barre d’outils Déboguer (Ctrl + Maj + F5).
Lorsque vous appuyez sur Redémarrer, cela permet de gagner du temps par rapport à l’arrêt de l’application et de redémarrer le débogueur. Le débogueur s’interrompt au premier point d’arrêt atteint en exécutant du code.
Le débogueur s’arrête à nouveau au point d’arrêt que vous avez précédemment défini à l’intérieur de la boucle for
.
Pour réexécuter votre application à partir du début dans le débogueur, sélectionnez Ctrl+Maj+F5, ou choisissez le bouton Redémarrer dans la barre d’outils Débogage, ou choisissez Déboguer>Redémarrer dans la barre de menus.
Redémarrer arrête le débogueur, puis le redémarre en une seule étape. Lorsque le débogueur redémarre, il s’exécute jusqu’au premier point d’arrêt, qui est le point d’arrêt que vous avez précédemment défini à l’intérieur de la boucle for
, puis se met en pause.
Inspecter des variables avec les fenêtres Autos et Locals
Examinez la fenêtre Autos en bas de l’éditeur de code.
Si la fenêtre est fermée, ouvrez-la lorsque le débogueur est en pause en choisissant Déboguer>Windows>Autos.
Dans la fenêtre Autos, vous voyez les variables et leur valeur actuelle. La fenêtre Autos affiche toutes les variables utilisées sur la ligne actuelle ou la ligne précédente (consultez la documentation relative au comportement spécifique au langage).
Ensuite, examinez la fenêtre Locals, dans un onglet à côté de la fenêtre Autos.
Développez la variable
letters
pour afficher les éléments qu’il contient.La fenêtre Locals affiche les variables qui se trouvent dans l’étendue actuelle, autrement dit le contexte d’exécution actuel.
Les fenêtres Autos et Locals affichent les valeurs des variables lorsque vous déboguez. Les fenêtres sont disponibles uniquement pendant une session de débogage. La fenêtre Autos affiche les variables utilisées sur la ligne actuelle où se trouve le débogueur et sur la ligne précédente. La fenêtre Locals affiche les variables définies dans l’étendue locale, qui est généralement la fonction ou la méthode actuelle.
Pendant que le débogueur est en pause, affichez la fenêtre Autos en bas de l’éditeur de code.
Si la fenêtre Autos est fermée, sélectionnez Ctrl+D, A ou choisissez Déboguer>Fenêtres>Autos dans la barre de menus.
Pendant que le débogueur est toujours suspendu, consultez la fenêtre Locals, dans un onglet à côté de la fenêtre Autos.
Si la fenêtre Locals est fermée, sélectionnez Ctrl+D, L, ou choisissez Déboguer>Windows>Locals.
Dans la fenêtre Locals, développez la variable
letters
pour afficher ses éléments de tableau et leurs valeurs.
Pour plus d’informations sur les fenêtres Autos et Locals, consultez Inspecter les variables dans les fenêtres Autos et Locals.
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 une montre.
La fenêtre Espion s’ouvre en bas de l’éditeur de code. Vous pouvez utiliser une fenêtre Watch pour spécifier une variable (ou une expression) à surveiller.
À 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 aux autres fenêtres de variables, la fenêtre Observateur affiche toujours les variables que vous observez (elles sont grisées lorsqu’elles ne sont pas accessibles).
Vous pouvez spécifier une variable ou une expression que vous souhaitez surveiller en parcourant le code, en l’ajoutant à la fenêtre Surveillance.
Pendant que le débogueur est suspendu, cliquez avec le bouton droit sur la variable
name
et choisissez Ajouter une montre.La fenêtre Espion s’ouvre par défaut en bas de l’éditeur de code.
Maintenant que vous avez défini une montre sur la variable
name
, parcourez votre code pour voir la valeur de la variablename
changer avec chaque itération de bouclefor
.Contrairement aux autres fenêtres de variables, la fenêtre Observation affiche toujours les variables que vous suivez. Les variables hors portée 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
Pendant que l’exécution du code est suspendue dans la boucle
for
, sélectionnez la fenêtre pile des appels, ouverte par défaut dans le volet inférieur droit.Si elle est fermée, ouvrez-la interrompue dans le débogueur en choisissant Déboguer>Windows>Pile des appels.
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.ExamineCallStack
La fenêtre pile des appels affiche l’ordre dans lequel les méthodes et les fonctions sont appelées. La ligne supérieure affiche la fonction actuelle (la méthode
SendMessage
dans cette application). La deuxième ligne montre queSendMessage
a été appelée à partir de la méthodeMain
, et ainsi de suite.Remarque
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 examiner ce code source, ce qui modifie également la portée actuelle examinée par le 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.
La pile des appels peut vous aider à comprendre le flux d’exécution de votre application, en montrant l’ordre dans lequel les méthodes et les fonctions sont appelées.
Pendant que le débogueur est en pause dans la boucle
for
, affichez la fenêtre de la pile des appels , qui s’ouvre par défaut dans le volet inférieur droit de l’éditeur de code.Si la fenêtre Pile des appels est fermée, sélectionnez Ctrl+D, C ou choisissez Déboguer>Fenêtres>Pile des appels dans la barre de menus.
Dans la fenêtre Pile des appels, vous voyez le pointeur jaune au niveau de la méthode
Main
active.Sélectionnez F11 plusieurs fois, jusqu’à ce que le débogueur place l’application en pause dans la méthode
SendMessage
.La première ligne de la fenêtre pile d'appels affiche la fonction actuelle, qui est la méthode
SendMessage
. La deuxième ligne indique que la méthodeSendMessage
a été appelée à partir de la méthodeMain
.Remarque
La fenêtre Pile des appels est similaire à la perspective Débogage dans certains IDE, comme Eclipse.
Dans la fenêtre Pile des appels, vous pouvez double-cliquer sur une ligne de code pour accéder à ce code source, ce qui change également l’étendue active inspectée par le 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 ou examiner le code source.
Pour plus d’informations sur la pile des appels, consultez Guide pratique pour examiner la pile des appels.
Étapes suivantes
Dans ce tutoriel, vous avez appris à démarrer le débogueur, à parcourir le code et à inspecter les variables. Vous souhaiterez peut-être obtenir un aperçu général des fonctionnalités du débogueur, ainsi que des liens vers plus d’informations.