Udostępnij przez


Wyświetlanie i edytowanie zmiennych lokalnych w usłudze WinDbg (wersja klasyczna)

W systemie WinDbg można wyświetlać zmienne lokalne, wprowadzając polecenia, używając okna Ustawienia lokalne lub za pomocą okna Obserwowanie.

Okno polecenia debugera

Zmienne lokalne i parametry można wyświetlić, wprowadzając polecenie dv lub polecenie dt w oknie Polecenia debugera.

Otwieranie okna Ustawienia lokalne

W oknie Lokalnych wyświetlane są informacje o wszystkich zmiennych lokalnych w bieżącym zakresie.

Aby otworzyć lub przełączyć się do okna Ustawienia lokalne, w oknie WinDbg w menu Widok wybierz pozycję Lokalne. (Możesz również nacisnąć ALT+3 lub wybrać przycisk Ustawienia lokalne na pasku narzędzi. Alt+SHIFT+3 zamyka okno Ustawienia lokalne).

Poniższy zrzut ekranu przedstawia przykład okna Lokalne.

Zrzut ekranu przedstawiający okno Ustawienia lokalne w usłudze WinDbg.

Okno Ustawienia lokalne może zawierać cztery kolumny. Kolumny Nazwa i Wartość są zawsze wyświetlane, a kolumny Typ i Lokalizacja są opcjonalne. Aby wyświetlić kolumny Typ i Lokalizacja , wybierz odpowiednio przyciski Typecast i Locations na pasku narzędzi.

Korzystanie z okna Ustawienia lokalne

W oknie Ustawienia lokalne można wykonać następujące czynności:

  • W kolumnie Nazwa wyświetlana jest nazwa każdej zmiennej lokalnej. Jeśli zmienna jest strukturą danych, obok jej nazwy pojawi się pole wyboru. Aby rozwinąć lub zwinąć wyświetlanie składowych struktury, zaznacz lub wyczyść pole wyboru.

  • Kolumna Wartość wyświetla bieżącą wartość każdej zmiennej.

    • Aby wprowadzić nową wartość zmiennej, kliknij dwukrotnie bieżącą wartość i wpisz nową wartość lub edytuj starą wartość. (Polecenia wycinania, kopiowania i wklejania są dostępne do edycji). Możesz wpisać dowolne wyrażenie języka C++.
    • Aby zapisać nową wartość, naciśnij ENTER.
    • Aby odrzucić nową wartość, naciśnij ESC.
    • Jeśli wpiszesz nieprawidłową wartość, stara wartość pojawi się ponownie po naciśnięciu ENTER.

    Liczby całkowite typu int są wyświetlane jako wartości dziesiętne; Liczby całkowite typu UINT są wyświetlane w bieżącym radiu. Aby zmienić bieżący radix, użyj n (Ustaw bazę numerów) polecenia w oknie Polecenie debugera.

  • Kolumna Typ (jeśli jest wyświetlana w oknie Ustawienia lokalne) pokazuje bieżący typ danych każdej zmiennej. Każda zmienna jest wyświetlana w formacie odpowiednim dla własnego typu danych. Struktury danych mają nazwy typów w kolumnie Typ . Inne typy zmiennych wyświetlają "Wpisz nowy typ" w tej kolumnie.

    Jeśli dwukrotnie klikniesz pozycję "Wprowadź nowy typ", możesz określić typ, wprowadzając nowy typ danych. Rzutowanie powoduje zmianę bieżącego wyświetlania tej zmiennej tylko w oknie Ustawienia lokalne; nie zmienia niczego w debugerze ani na komputerze docelowym. Co więcej, jeśli wprowadzisz nową wartość w kolumnie Wartość , wprowadzony tekst zostanie przeanalizowany na podstawie rzeczywistego typu symbolu, a nie każdego nowego typu, który mógł zostać wprowadzony w kolumnie Typ . Jeśli zamkniesz i ponownie otworzysz okno Ustawienia lokalne, utracisz zmiany typu danych.

    Możesz również wprowadzić polecenie rozszerzenia w kolumnie Typ . Debuger przekaże adres symbolu do tego rozszerzenia i wyświetli wynikowe dane wyjściowe w serii zwijanych wierszy poniżej bieżącego wiersza. Na przykład, jeśli symbol w tym wierszu jest prawidłowym adresem bloku środowiska wątku, możesz wpisać !teb w kolumnie Typ, aby uruchomić rozszerzenie !teb pod adresem tego symbolu.

  • Kolumna Lokalizacja (jeśli jest wyświetlana w oknie Ustawienia lokalne) pokazuje przesunięcie każdego elementu członkowskiego struktury danych.

  • Jeśli zmienna lokalna jest wystąpieniem klasy zawierającej tabele wirtualne, kolumna Nazwa wyświetla tabele wirtualne i można rozwinąć tabele wirtualne, aby wyświetlić wskaźniki funkcji. Jeśli tabela wirtualna jest obecna w klasie bazowej i wskazuje na implementację pochodną, zostanie wyświetlona notacja _vtcast_Class, która wskazuje składowe dodawane dzięki klasie pochodnej. Te składowe rozszerzają się tak jak typ klasy pochodnej.

  • Kontekst lokalny określa, który zestaw zmiennych lokalnych będzie wyświetlany w oknie Ustawienia lokalne. Gdy kontekst lokalny zmieni się z jakiegokolwiek powodu, okno Ustawienia lokalne zostanie automatycznie zaktualizowane. Domyślnie kontekst lokalny odpowiada bieżącej pozycji licznika programu. Aby uzyskać więcej informacji na temat zmiany kontekstu lokalnego, zobacz Kontekst lokalny.

Okno Ustawienia lokalne zawiera pasek narzędzi zawierający dwa przyciski (typecast i Locations) oraz menu skrótów z dodatkowymi poleceniami. Aby uzyskać dostęp do menu, wybierz i przytrzymaj (lub kliknij prawym przyciskiem myszy) pasek tytułu okna lub wybierz ikonę w pobliżu prawego górnego rogu okna. Pasek narzędzi i menu zawierają następujące przyciski i polecenia.

  • (Pasek narzędzi i menu) Funkcja Typecast włącza i wyłącza wyświetlanie kolumny Typ .

  • (Pasek narzędzi i menu) Lokalizacje włącza i wyłącza wyświetlanie kolumny Lokalizacja .

  • (Tylko menu) Wyświetl 16-bitowe wartości jako Unicode wyświetla ciągi Unicode w tym oknie. To polecenie włącza i wyłącza globalne ustawienie, które ma wpływ na okno Ustawienia lokalne, okno czujki i dane wyjściowe polecenia debugera. To polecenie jest równoważne użyciu polecenia .enable_unicode (Włącz wyświetlanie Unicode).

  • (Tylko menu) Zawsze wyświetlaj liczby w domyślnym systemie liczbowym powoduje wyświetlanie liczb całkowitych w domyślnym systemie liczbowym zamiast wyświetlania ich w systemie dziesiętnym. To polecenie włącza i wyłącza globalne ustawienie, które ma wpływ na okno Ustawienia lokalne, okno czujki i dane wyjściowe polecenia debugera. To polecenie jest równoważne użyciu polecenia .force_radix_output (Użyj radix dla liczb całkowitych).

    UwagaZawsze wyświetlaj liczby w domyślnym systemie liczbowym nie wpływa na długie liczby całkowite. Długie liczby całkowite są wyświetlane w formacie dziesiętny, chyba że ustawiono polecenie .enable_long_status (Włącz wyświetlanie długiej liczby całkowitej). Polecenie .enable_long_status wpływa na wyświetlanie w oknie Ustawienia lokalne, okno czujki i w danych wyjściowych polecenia debugera; w menu w oknie Ustawienia lokalne nie ma odpowiednika tego polecenia.

  • (Tylko menu) Otwórz okno pamięci dla wybranej wartości otwiera nowe zadokowane okno Pamięci, które wyświetla pamięć rozpoczynające się od adresu wybranego wyrażenia.

  • (Tylko menu) Wywołaj dt dla wybranej wartości pamięci uruchamia dt (Typ wyświetlania) polecenie z wybranym symbolem jako jego parametrem. Wynik zostanie wyświetlony w oknie Polecenie debugera. Opcja -n jest automatycznie używana do odróżnienia symbolu od adresu szesnastkowego. Nie są używane żadne inne opcje. Pamiętaj, że zawartość utworzona przy użyciu tego zaznaczenia menu jest identyczna z zawartością utworzoną podczas uruchamiania polecenia dt z wiersza polecenia, ale format jest nieco inny.

  • (Tylko menu) Pasek narzędzi włącza i wyłącza pasek narzędzi.

  • (Tylko menu) Dokowanie lub Odłączenie powoduje, że okno wchodzi lub wychodzi ze stanu dokowania.

  • (Tylko menu) Przejście do nowego doku zamyka okno Ustawienia lokalne i otwiera je w nowym docku.

  • (Tylko menu) Ustaw jako element docelowy docka tabulacji dla typu okna jest niedostępny dla okna Ustawienia lokalne. Ta opcja jest dostępna tylko dla okien źródła lub pamięci.

  • (Tylko menu) Zawsze unoszące się powoduje, że okno pozostaje niezaczepione, nawet jeśli zostanie przeciągnięte do miejsca dokowania.

  • (Tylko menu) Przenoszenie z ramką powoduje, że okno przemieszcza się razem z ramką WinDbg, nawet gdy okno jest oddokowane.

  • (Tylko menu) Pomoc spowoduje otwarcie tego tematu w dokumentacji narzędzi debugowania dla systemu Windows.

  • (Tylko menu) Zamknięcie zamyka to okno.

Okno podglądu

W systemie WinDbg możesz użyć okna Obserwowanie, aby wyświetlić i zmienić zmienne lokalne. W oknie Obserwowanie można wyświetlić dowolną listę żądanych zmiennych. Te zmienne mogą zawierać zmienne globalne i zmienne lokalne z dowolnej funkcji. W dowolnym momencie w oknie Obserwowanie są wyświetlane wartości tych zmiennych, które są zgodne z zakresem bieżącej funkcji. Możesz również zmienić wartości tych zmiennych za pomocą okna Obserwowanie.

W przeciwieństwie do okna Lokale, okno Watch nie jest wpływane przez zmiany w kontekście lokalnym. Tylko te zmienne zdefiniowane w zakresie bieżącego licznika programu mogą mieć wyświetlane lub modyfikowane wartości.

Aby otworzyć okno Obserwowanie, wybierz pozycję Obejrzyj z menu Widok . Możesz również nacisnąć ALT+2 lub wybrać przycisk Obejrzyj na pasku narzędzi. Alt+SHIFT+2 zamyka okno Czujka.

Poniższy zrzut ekranu przedstawia przykład okna Obserwacji.

Zrzut ekranu przedstawiający okno Obserwowanie w usłudze WinDbg.

Okno Obserwacji może zawierać cztery kolumny. Kolumny Nazwa i Wartość są zawsze wyświetlane, a kolumny Typ i Lokalizacja są opcjonalne. Aby wyświetlić kolumny Typ i Lokalizacja , wybierz odpowiednio przyciski Typecast i Locations na pasku narzędzi.

Zobacz też

Aby uzyskać więcej informacji na temat kontrolowania zmiennych lokalnych, omówienie używania zmiennych i zmieniania zakresu oraz opis innych poleceń związanych z pamięcią, zobacz Odczytywanie i zapisywanie pamięci.