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 Ctrl+Alt+V>A.
Aby otworzyć okno Ustawienia lokalne, podczas debugowania wybierz pozycję Debuguj> ustawienia lokalne systemu Windows>lub naciśnij Alt+4.
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 :
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 ivar1
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 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 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.
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.
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.
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 .
Uzyskiwanie pomocy dotyczącej sztucznej inteligencji
Jeśli masz copilot, możesz uzyskać pomoc dotyczącą sztucznej inteligencji podczas przeglądania zmiennych w oknach Autos lub Locals lub w poradach dotyczących danych. Kliknij prawym przyciskiem myszy zmienną i użyj przycisku Zapytaj Copilot. W tym scenariuszu Copilot zna już kontekst pytania, więc nie musisz podawać kontekstu na czacie. Aby uzyskać więcej informacji, zobacz Debugowanie za pomocą narzędzia Copilot.
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 :Wartość to
c
0, ponieważ wierszc = 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 :Zmienna
e
jest niezainicjowana, ponieważ wiersze = 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.
Uwaga
Począwszy od programu Visual Studio 2022 w wersji 17.12 (wersja zapoznawcza 3), możesz również wyświetlać zwracane wartości w tekście , a 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 sumVars()
wywołań metody i subtractVars()
w oknie Autos:
Ustaw punkt przerwania w
int x = sumVars(a, b) + subtractVars(c, d);
wierszu.Rozpocznij debugowanie, a po wstrzymaniu wykonywania w punkcie przerwania wybierz pozycję Step Over lub naciśnij F10. W oknie Autos powinny zostać wyświetlone następujące wartości zwracane :