Inspectez les variables dans les fenêtres Autos et Locals

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 Automatique montre les variables utilisées autour du relevé actuel où le débogueur est arrêté. 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.

Remarque

Si c’est la première fois que vous essayez de déboguer du code, vous pourrez consulter Débogage pour grands débutants et Techniques et outils de débogage avant de poursuivre 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>Windows>Autos, ou appuyez sur Ctrl+Alt+V>A.

Pour ouvrir la fenêtre Locals, lors du débogage, sélectionnez Déboguer>Windows>Locals, ou appuyez surAlt+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.

Utilisez les fenêtres Autos et Locals

Les tableaux et les objets sont affichés dans les fenêtres Autos et Locals en tant que contrôles d’arborescence. Sélectionnez la flèche située à gauche du nom de variable pour développer la vue et afficher les champs et propriétés. Voici un exemple d’un objet System.IO.FileStream 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. Le changement 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 changer en hexadécimal, faites un clic droit dans la fenêtre Locals ou Autos , puis sélectionnez Affichage hexadécimal. Cette modification affecte toutes les fenêtres du débogueur.

Modifiez 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 Locals, 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 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 de var1 = ++var2 modifie la valeur de var1 et var2. Ces expressions auraient des effets secondaires. Les effets secondaires peuvent provoquer 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 anodine peut entraîner la modification de certains des bits de la variable à virgule flottante.

Recherchez 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 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 les flèches gauche et droite (Maj+F3 et F3, respectivement) pour naviguer entre les correspondances trouvées.

Capture d’écran de Rechercher dans la fenêtre Locals

Capture d’écran de Rechercher dans la fenêtre Locals

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 de profondeur que vous souhaitez rechercher dans des objets imbriqués.

Épinglez les propriétés dans la fenêtre Autos ou Locals

Notes

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

Vous pouvez rapidement inspecter les objets en fonction de leurs propriétés dans les fenêtres Autos et Locals avec l’outil Propriétés épinglées . Pour utiliser cet outil, passez le curseur sur une propriété et sélectionnez l’icône d’épingle qui s’affiche ou faites un clic droit, puis sélectionnez l’option Épingler le membre comme favori dans le menu contextuel résultant. Cette propriété s’affiche 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 désépingler une propriété, sélectionnez à nouveau l’icône d’épingle ou sélectionnez l’option Désépingler le membre en tant que favori dans le menu contextuel.

Capture d’écran Épingler les propriétés 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 située au-dessus des fenêtres Autos ou Locals.

Capture d’écran de Filtrer les propriétés favorites.

Capture d’écran de Activer/désactiver les noms de propriétés.

Modifiez 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é, ce qui modifie le contexte des fenêtres Autos et Locals.

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 Déboguer l’emplacement dans la liste déroulante, ou sélectionnez Afficher>Barres d'outils>Emplacement de débogage.

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

Capture d’écran de la barre d’outils de l’emplacement de débogage.

Capture d’écran de la barre d’outils de l’emplacement de débogage.

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

Les 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ébogage. 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 de c est 0, car la ligne c = 3 n’a pas encore été exécutée.

  • En C++, la fenêtre Autos affiche les variables utilisées dans au moins trois lignes avant la ligne actuelle où l’exécution est interrompue. 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 montrant l’int c avec la valeur 3.

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

    La variable e n’est pas 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 de retour dans la fenêtre Autos quand vous passez au-dessus ou en dehors 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 sumVars() et subtractVars() 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 Step Over ou appuyez sur F10. Vous devriez voir les valeurs de retour suivantes dans la fenêtre Autos :

    Capture d’écran de Valeur de retour Autos C#.

    Capture d’écran de Valeur de retour Autos C#.