Sprawdzanie zmiennych w oknach Autos i Locals

Okna Autos i Locals pokazują 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 Ustawienia lokalne są wyświetlane zmienne zdefiniowane w zakresie lokalnym, które są zwykle bieżącą funkcją lub metodą.

Uwaga

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

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

Aby otworzyć okno Automatyczne, podczas debugowania wybierz pozycję Debuguj>autos windows>lub naciśnij klawisze Ctrl+Alt+V>A.

Aby otworzyć okno Ustawienia lokalne, podczas debugowania wybierz pozycję Debuguj> ustawienia lokalne systemu Windows>lub naciśnij klawisze Alt+4.

Uwaga

Ten temat dotyczy programu Visual Studio w systemie Windows. Aby uzyskać Visual Studio dla komputerów Mac, zobacz Wizualizacje danych w Visual Studio dla komputerów Mac.

Korzystanie z okien Autos and Locals

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

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 Ustawienia lokalne lub Automatyczne 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 w oknie Ustawienia lokalne lub Automatyczne i wybierz pozycję Ekran szesnastkowy. 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 Locals, 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++).

Uwaga

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ść parametru i var1var2. 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 niektórych bitów w zmiennej zmiennoprzecinkowych.

Wyszukiwanie w oknie Autos lub Locals

Słowa kluczowe można wyszukiwać w kolumnach Nazwa, Wartość i Typ okna Autos lub Locals przy użyciu paska wyszukiwania nad każdym oknem. Naciśnij klawisz 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 przechodzić między znalezionymi dopasowaniami.

Zrzut ekranu przedstawiający okno Wyszukiwanie w ustawieniach lokalnych

Zrzut ekranu przedstawiający okno Wyszukiwanie w ustawieniach lokalnych

Aby dokładniej wyszukiwać, użyj listy rozwijanej Wyszukaj głębiej w górnej części okna Autos lub Locals, aby wybrać, ile poziomów głębokości chcesz wyszukać w zagnieżdżonych obiektach.

Przypinanie właściwości w oknie 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 bąbelki w górę tej właściwości na początku listy właściwości obiektu, a nazwa właściwości i wartość są wyświetlane w kolumnie Wartość . Aby odpiąć 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 przypinania w oknie Ustawienia 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, który zmienia kontekst okien Autos i Locals .

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

Ustaw punkt przerwania i rozpocznij debugowanie. Gdy punkt przerwania zostanie trafiony, wykonanie zostanie wstrzymane i będzie można zobaczyć lokalizację na pasku narzędzi Lokalizacja debugowania .

Zrzut ekranu przedstawiający pasek narzędzi Lokalizacja debugowania.

Zrzut ekranu przedstawiający pasek narzędzi Lokalizacja debugowania.

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

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

  • W językach 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 przedstawiający okno Automatyczne z wartością c ustawioną na 0.

    Zrzut ekranu przedstawiający okno Automatyczne z wartością c ustawioną na 0.

    Wartość to c 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 przedstawiający okno Autos z wyróżnionym wierszem, który pokazuje int c z wartością 3.

    Zrzut ekranu przedstawiający okno 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 przechodzenia lub poza wywołanie metody. 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.

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 sumVars() wywołań metody i subtractVars() w oknie Autos:

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

  2. Rozpocznij debugowanie, a po wstrzymaniu wykonywania w punkcie przerwania wybierz pozycję Step Over lub naciśnij klawisz F10. W oknie Autos powinny zostać wyświetlone następujące wartości zwracane :

    Zrzut ekranu przedstawiający wartość zwracaną przez autos C#.

    Zrzut ekranu przedstawiający wartość zwracaną przez autos C#.