Udostępnij za pośrednictwem


Sprawdzanie zmiennych w oknach Autos i Locals

Okna Autos i Locals wyświetlają wartości zmiennych podczas debugowania. Okna są dostępne tylko podczas sesji debugowania. W oknie Autos są wyświetlane zmienne używane wokół bieżącej instrukcji, w której debuger jest wstrzymany. W oknie Locals są wyświetlane zmienne zdefiniowane w zakresie lokalnym, które są zwykle bieżącą funkcją lub metodą.

Notatka

Jeśli po raz pierwszy próbowano debugować kod, warto przeczytać Debugowanie dla początkujących i Techniki debugowania i narzędzia przed przejściem do tego artykułu.

Okno Autos jest dostępne dla języków C#, Visual Basic, C++i Python, ale nie dla języków JavaScript lub F#.

Aby otworzyć okno Autos, podczas debugowania wybierz pozycję Debugowanie>Windows>Autoslub naciśnij Ctrl+Alt+V>A.

Aby otworzyć okno Locals, podczas debugowania wybierz Debug>Windows>Localslub naciśnij Alt+4.

Korzystanie z okien Autos and Locals

Tablice i obiekty są wyświetlane w oknach Autos i Lokals jako elementy sterujące w formie drzewa. Wybierz strzałkę z lewej strony nazwy zmiennej, aby rozwinąć widok, aby wyświetlić pola i właściwości. Oto przykład obiektu System.IO.FileStream w oknie Locals:

Zrzut ekranu przedstawiający okno Ustawienia lokalne z plikiem ustawionym na wartość System.IO.FileStream.

Zrzut ekranu przedstawiający okno Ustawienia lokalne z plikiem ustawionym na wartość System.IO.FileStream.

Czerwona wartość w oknie Locals lub Autos oznacza, że wartość zmieniła się od ostatniej oceny. Zmiana może pochodzić z poprzedniej sesji debugowania lub zmiany wartości w oknie.

Domyślny format liczbowy w oknach debugera to liczba dziesiętna. Aby zmienić go na szesnastkowy, kliknij prawym przyciskiem myszy okno Locals lub Autos i wybierz pozycję Szesnastkowe wyświetlanie. Ta zmiana ma wpływ na wszystkie okna debugera.

Edytowanie wartości zmiennych w oknie Autos lub Locals

Aby edytować wartości większości zmiennych w oknach Autos lub Ustawienia lokalne, kliknij dwukrotnie wartość i wprowadź nową wartość.

Możesz wprowadzić wyrażenie dla wartości, na przykład a + b. Debuger akceptuje najbardziej prawidłowe wyrażenia języka.

W natywnym kodzie C++ może być konieczne zakwalifikowanie kontekstu nazwy zmiennej. Aby uzyskać więcej informacji, zobacz operator kontekstu (C++).

Ostrożność

Przed zmianą wartości i wyrażeń upewnij się, że rozumiesz konsekwencje. Niektóre możliwe problemy to:

  • Ocena niektórych wyrażeń może zmienić wartość zmiennej lub w inny sposób wpłynąć na stan programu. Na przykład ocena var1 = ++var2 zmienia wartość zarówno var1, jak i var2. Mówi się, że wyrażenia te mają skutki uboczne. Skutki uboczne mogą powodować nieoczekiwane wyniki, jeśli ich nie znasz.

  • Edytowanie wartości zmiennoprzecinkowych może spowodować niewielkie niedokładności z powodu konwersji dziesiętnej na binarną składników ułamkowych. Nawet pozornie nieszkodliwa edycja może spowodować zmiany w niektórych bitach zmiennej zmiennoprzecinkowej.

Wyszukiwanie w oknie Autos lub Locals

Słowa kluczowe można wyszukiwać w kolumnach Nazwa, Wartość i Typ okna Autos lub okna Lokalnych, korzystając z paska wyszukiwania nad każdym oknem. Naciśnij ENTER lub wybierz jedną ze strzałek, aby wykonać wyszukiwanie. Aby anulować trwające wyszukiwanie, wybierz ikonę "x" na pasku wyszukiwania.

Użyj strzałek w lewo i w prawo (odpowiednio Shift+F3 i F3), aby nawigować między znalezionymi dopasowaniami.

Zrzut ekranu przedstawiający wyszukiwanie w oknie lokalnym

zrzut ekranu wyszukiwania w oknie Lokalne

Aby dostosować dokładność wyszukiwania, użyj listy rozwijanej Wyszukaj głębiej w górnej części okna Autos lub Lokale, aby wybrać, ile poziomów głębokości chcesz przeszukać w zagnieżdżonych obiektach.

Przypinanie właściwości w oknach Autos lub Locals

Uwaga

Ta funkcja jest obsługiwana dla platformy .NET Core 3.0 lub nowszej.

Można szybko sprawdzić obiekty według ich właściwości w oknach Autos and Locals za pomocą narzędzia Przypięte właściwości. Aby użyć tego narzędzia, umieść kursor nad właściwością i wybierz ikonę pinezki, która zostanie wyświetlona lub kliknij prawym przyciskiem myszy, a następnie wybierz opcję przypnij element członkowski jako ulubiony w wyświetlonym menu kontekstowym. To przenosi tę właściwość na początek listy właściwości obiektu, a nazwa i wartość właściwości są wyświetlane w kolumnie Wartość. Aby odepchnąć właściwość, wybierz ponownie ikonę pinezki lub wybierz opcję Odepnij element członkowski jako ulubiony w menu kontekstowym.

Zrzut ekranu przedstawiający właściwości pinezki w oknie Lokalne.

Można również przełączać nazwy właściwości i filtrować nieprzypinane właściwości podczas wyświetlania listy właściwości obiektu w oknach Autos lub Locals. Dostęp do każdej opcji można uzyskać, wybierając przyciski na pasku narzędzi powyżej okien Autos lub Locals.

Zrzut ekranu przedstawiający pozycję Filtruj ulubione właściwości.

zrzut ekranu przedstawiający przełączanie nazw właściwości.

Zmienianie kontekstu okna Autos lub Locals

Możesz użyć paska narzędzi Lokalizacja debugowania, aby wybrać żądaną funkcję, wątek lub proces, co zmienia kontekst okien Autos i Locals.

Aby włączyć pasek narzędzi lokalizacji debugowania, kliknij pustą część obszaru paska narzędzi i wybierz pozycję Lokalizacja debugowania z listy rozwijanej lub wybierz pozycję Widok>Paski narzędzi>Lokalizacja debugowania.

Ustaw punkt przerwania i rozpocznij debugowanie. Gdy punkt przerwania zostanie osiągnięty, działanie zostanie wstrzymane, a lokalizację można zobaczyć na pasku narzędzi Lokalizacja debugowania.

Zrzut ekranu przedstawiający pasek narzędzi Lokalizacja Debugowania. Pasek narzędzi Lokalizacja Debugowania

zrzut ekranu przedstawiający pasek narzędzi Lokalizacja debugowania. paska narzędzi lokalizacja debugowania

Uzyskiwanie pomocy dotyczącej sztucznej inteligencji

Jeśli masz Copilot, możesz uzyskać pomoc AI podczas przeglądania zmiennych w oknach Autos lub Locals lub we wskazówkach dotyczących danych. Kliknij prawym przyciskiem myszy zmienną i użyj przycisku Ask CopilotZrzut ekranu przycisku Ask Copilot. przycisk. W tym scenariuszu Copilot zna już kontekst pytania, więc nie musisz podawać kontekstu na czacie. Aby uzyskać więcej informacji, zobacz Debug with Copilot.

Zmienne w oknie Autos (C#, C++, Visual Basic, Python)

Różne języki kodu wyświetlają różne zmienne w oknie Autos.

  • W języku C# i Visual Basic okno Autos wyświetla dowolną zmienną używaną w bieżącym lub poprzednim wierszu. Na przykład w kodzie C# lub Visual Basic zadeklaruj następujące cztery zmienne:

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

    Ustaw punkt przerwania w wierszu c = 3;i uruchom debuger. Po wstrzymaniu wykonywania zostanie wyświetlone okno Autos:

    Zrzut ekranu okna Autos z wartością c ustawioną na 0.

    Zrzut ekranu okna Autos z wartością c ustawioną na 0.

    Wartość c wynosi 0, ponieważ wiersz c = 3 nie został jeszcze wykonany.

  • W języku C++okno Autos wyświetla zmienne używane w co najmniej trzech wierszach przed bieżącym wierszem, w którym wykonywanie jest wstrzymane. Na przykład w kodzie C++ zadeklaruj sześć zmiennych:

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

    Ustaw punkt przerwania w wierszu e = 5; i uruchom debuger. Po zatrzymaniu wykonywania zostanie wyświetlone okno Autos:

    Zrzut ekranu okna Autos z wyróżnionym wierszem, który pokazuje int c z wartością 3.

    Zrzut ekranu okna Autos z wyróżnionym wierszem, który pokazuje int c z wartością 3.

    Zmienna e jest niezainicjowana, ponieważ wiersz e = 5 nie został jeszcze wykonany.

Wyświetlanie wartości zwracanych wywołań metod

W kodzie .NET i C++ można sprawdzić wartości zwracane w oknie Autos podczas przeskakiwania przez wywołanie metody lub wychodzenia z niego. Wyświetlanie wartości zwracanych wywołań metody może być przydatne, gdy nie są przechowywane w zmiennych lokalnych. Metodę można użyć jako parametru lub jako zwracanej wartości innej metody.

Notatka

Począwszy od programu Visual Studio 2022 w wersji 17.12 (wersja zapoznawcza 3), można również wyświetlić wartości zwracane w linii, oraz nie tylko w oknie Autos.

Na przykład następujący kod w języku C# dodaje zwracane wartości dwóch funkcji:

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;
}

Aby wyświetlić zwracane wartości wywołań metody sumVars() i subtractVars() w oknie Autos:

  1. Ustaw punkt przerwania w wierszu int x = sumVars(a, b) + subtractVars(c, d);.

  2. Rozpocznij debugowanie, a gdy wykonywanie zostanie wstrzymane w punkcie przerwania, wybierz pozycję Krok przez lub naciśnij F10. W oknie Autos powinny zostać wyświetlone następujące wartości zwracane:

    Zrzut ekranu przedstawiający wartość zwracaną przez 'Autos' w C#.