Inspecter les variables dans les fenêtres Autos et Locals

S’applique à :ouiVisual Studio non Visual Studio pour Mac pasVisual Studio Code

Les fenêtres Autos et Locals affichent des valeurs de variable pendant le débogage. Les fenêtres sont disponibles uniquement pendant une session de débogage. La fenêtre Autos affiche les variables utilisées autour du point d’arrêt actuel. La fenêtre Locals affiche des variables définies dans l’étendue locale, qui est généralement la fonction ou la méthode actuelle.

Notes

Si c’est la première fois que vous avez essayé de déboguer du code, vous pouvez lire le débogage pour les débutants absolus et lestechniques et outils de débogage avant de passer à cet article.

La fenêtre Autos est disponible pour le code C#, Visual Basic, C++et Python, mais pas pour JavaScript ou F#.

Pour ouvrir la fenêtre Autos, lors du débogage, sélectionnez Déboguer>les autosWindows>, ou appuyez sur Ctrl+Alt+V>A.

Pour ouvrir la fenêtre Locals, lors du débogage, sélectionnez Déboguer>les locauxWindows>, ou appuyez sur Alt+4.

Notes

Cette rubrique s’applique à Visual Studio sur Windows. Pour Visual Studio pour Mac, consultez visualisations de données dans Visual Studio pour Mac.

Utiliser les fenêtres Autos et Locals

Les tableaux et les objets s’affichent dans les fenêtres Autos et Locals en tant que contrôles d’arborescence. Sélectionnez la flèche à gauche d’un nom de variable pour développer la vue pour afficher les champs et les propriétés. Voici un System.IO.FileStream exemple d’objet dans la fenêtre Locals :

Capture d’écran de la fenêtre Locals, avec un fichier défini sur une valeur System.IO.FileStream.

Capture d’écran de la fenêtre Locals, avec un fichier défini sur une valeur System.IO.FileStream.

Une valeur rouge dans la fenêtre Locals ou Autos signifie que la valeur a changé depuis la dernière évaluation. La modification peut provenir d’une session de débogage précédente, ou parce que vous avez modifié la valeur dans la fenêtre.

Le format numérique par défaut dans les fenêtres du débogueur est décimal. Pour le modifier en hexadécimal, cliquez avec le bouton droit dans la fenêtre Locals ou Autos , puis sélectionnez Affichage hexadécimal. Cette modification affecte toutes les fenêtres du débogueur.

Modifier les valeurs des variables dans la fenêtre Autos ou Locals

Pour modifier les valeurs de la plupart des variables dans les fenêtres Autos ou Locaux , double-cliquez sur la valeur et entrez la nouvelle valeur.

Vous pouvez entrer une expression pour une valeur, par exemple a + b. Le débogueur accepte la plupart des expressions de langage valides.

Dans le code C++ natif, vous devrez peut-être qualifier le contexte d’un nom de variable. Pour plus d’informations, consultez l’opérateur de contexte (C++).

Attention

Veillez à comprendre les conséquences avant de modifier les valeurs et les expressions. Voici quelques problèmes possibles :

  • Évaluer certaines expressions peut modifier la valeur d’une variable ou affecter d’une manière ou d’une autre l’état de votre programme. Par exemple, l’évaluation var1 = ++var2 change la valeur des deux var1 et var2. Ces expressions sont dites avoir des effets secondaires. Les effets secondaires peuvent entraîner des résultats inattendus si vous ne les connaissez pas.

  • Modifier des valeurs à virgule flottante risque d’entraîner quelques légères imprécisions, dues à la conversion en binaire de la partie décimale des composants fractionnaires. Même une modification apparemment inoffensive peut entraîner des modifications apportées à certains des bits de la variable à virgule flottante.

Rechercher dans la fenêtre Autos ou Locals

Vous pouvez rechercher des mots clés dans les colonnes Nom, Valeur et Type de la fenêtre Autos ou Locals à l’aide de la barre de recherche située au-dessus de chaque fenêtre. Appuyez sur Entrée ou sélectionnez l’une des flèches pour exécuter une recherche. Pour annuler une recherche en cours, sélectionnez l’icône « x » dans la barre de recherche.

Utilisez respectivement les flèches gauche et droite (Maj+F3 et F3) pour naviguer entre les correspondances trouvées.

Capture d’écran de la recherche dans la recherche dans

Capture d’écran de la recherche dans la recherche dans

Pour rendre votre recherche plus ou moins approfondie, utilisez la liste déroulante Recherche plus approfondie en haut de la fenêtre Autos ou Locals pour sélectionner le nombre de niveaux à rechercher dans des objets imbriqués.

Épingler des propriétés dans la fenêtre Autos ou Locals

Notes

Cette fonctionnalité est prise en charge pour .NET Core 3.0 ou une version ultérieure.

Vous pouvez rapidement inspecter les objets par leurs propriétés dans les fenêtres Autos et Locaux avec l’outil Propriétés pinnables . Pour utiliser cet outil, pointez sur une propriété et sélectionnez l’icône d’épingle qui s’affiche ou cliquez avec le bouton droit et sélectionnez l’option Épingler le membre comme favori dans le menu contextuel résultant. Cela bulle cette propriété en haut de la liste des propriétés de l’objet, et le nom et la valeur de la propriété s’affichent dans la colonne Valeur . Pour annuler une propriété, sélectionnez à nouveau l’icône d’épingle ou sélectionnez l’option Annuler le membre en tant que favori dans le menu contextuel.

Capture d’écran des propriétés pin dans la fenêtre Locals.

Vous pouvez également désactiver les noms de propriétés et filtrer les propriétés non épinglées lors de l’affichage de la liste des propriétés de l’objet dans les fenêtres Autos ou Locals. Vous pouvez accéder à chaque option en sélectionnant les boutons de la barre d’outils au-dessus des fenêtres Autos ou Locaux.

Capture d’écran des propriétés favorites du filtre.

Capture d’écran des noms de propriétés Bascule.

Modifier le contexte de la fenêtre Autos ou Locals

Vous pouvez utiliser la barre d’outils Emplacement de débogage pour sélectionner une fonction, un thread ou un processus souhaité, qui modifie le contexte des fenêtres Autos et Locaux .

Pour activer la barre d’outils Emplacement de débogage, cliquez dans une partie vide de la zone de barre d’outils et sélectionnez Emplacement de débogage dans la liste déroulante, ou sélectionnez Afficher> l’emplacement desbarres d’outils>.

Définissez un point d’arrêt et démarrez le débogage. Lorsque le point d’arrêt est atteint, l’exécution interrompt et vous pouvez voir l’emplacement dans la barre d’outils Emplacement de débogage .

Capture d’écran de la barre d’outils Emplacement de débogage.

Capture d’écran de la barre d’outils Emplacement de débogage.

Variables dans la fenêtre Autos (C#, C++, Visual Basic, Python)

Différents langages de code affichent différentes variables dans la fenêtre Autos .

  • En C# et en Visual Basic, la fenêtre Automatique affiche les variables utilisées sur la ligne actuelle ou précédente. Par exemple, dans le code C# ou Visual Basic, déclarez les quatre variables suivantes :

         public static void Main()
         {
            int a, b, c, d;
            a = 1;
            b = 2;
            c = 3;
            d = 4;
         }
    

    Définissez un point d’arrêt sur la ligne c = 3;et démarrez le débogueur. Lorsque l’exécution s’interrompt, la fenêtre Autos s’affiche :

    Capture d’écran de la fenêtre Autos, avec la valeur c définie sur 0.

    Capture d’écran de la fenêtre Autos, avec la valeur c définie sur 0.

    La valeur est c 0, car la ligne c = 3 n’a pas encore été exécutée.

  • Dans C++, la fenêtre Autos affiche les variables utilisées dans au moins trois lignes avant la ligne actuelle où l’exécution est suspendue. Par exemple, dans le code C++, déclarez six variables :

         void main() {
             int a, b, c, d, e, f;
             a = 1;
             b = 2;
             c = 3;
             d = 4;
             e = 5;
             f = 6;
         }
    

    Définissez un point d’arrêt sur la ligne e = 5; et exécutez le débogueur. Lorsque l’exécution s’arrête, la fenêtre Autos s’affiche :

    Capture d’écran de la fenêtre Autos, avec la ligne mise en surbrillance qui montre l’int c avec la valeur 3.

    Capture d’écran de la fenêtre Autos, avec la ligne mise en surbrillance qui montre l’int c avec la valeur 3.

    La variable e est non initialisée, car la ligne e = 5 n’a pas encore été exécutée.

Afficher les valeurs de retour d’appels de méthode

Dans le code .NET et C++, vous pouvez examiner les valeurs renvoyées dans la fenêtre Autos lorsque vous passez à pas ou hors d’un appel de méthode. L’affichage des valeurs de retour d’appel de méthode peut être utile lorsqu’elles ne sont pas stockées dans des variables locales. Une méthode peut être utilisée comme paramètre ou comme valeur de retour d’une autre méthode.

Par exemple, le code C# suivant ajoute les valeurs de retour de deux fonctions :

static void Main(string[] args)
{
    int a, b, c, d;
    a = 1;
    b = 2;
    c = 3;
    d = 4;
    int x = sumVars(a, b) + subtractVars(c, d);
}

private static int sumVars(int i, int j)
{
    return i + j;
}

private static int subtractVars(int i, int j)
{
    return j - i;
}

Pour afficher les valeurs de retour des appels de méthode et subtractVars() de la sumVars() méthode dans la fenêtre Autos :

  1. Définissez un point d’arrêt sur la ligne int x = sumVars(a, b) + subtractVars(c, d); .

  2. Démarrez le débogage et, lorsque l’exécution s’interrompt au point d’arrêt, sélectionnez Pas à pas ou appuyez sur F10. Vous devez voir les valeurs de retour suivantes dans la fenêtre Autos :

    Capture d’écran de la valeur de retour automatique C#.

    Capture d’écran de la valeur de retour automatique C#.

Voir aussi