Sdílet prostřednictvím


Zobrazení a úprava místních proměnných v WinDbg (Classic)

V WinDbg můžete zobrazit místní proměnné zadáním příkazů, pomocí okna Místní hodnoty nebo pomocí okna Kukátko.

Příkazové okno ladicího programu

Místní proměnné a parametry můžete zobrazit zadáním příkazu dv nebo příkazu dt v okně Příkazu ladicího programu.

Otevření okna Místní hodnoty

V okně Místní hodnoty se zobrazí informace o všech místních proměnných v aktuálním oboru.

Pokud chcete otevřít nebo přepnout do okna Místní, v okně WinDbg v nabídce Zobrazení vyberte Místní. (Můžete také stisknout alt+3 nebo vybrat tlačítko Místní hodnoty na panelu nástrojů. Kombinace kláves ALT+SHIFT+3 zavře okno Místní hodnoty.)

Následující snímek obrazovky ukazuje příklad okna Místní hodnoty.

Snímek obrazovky s oknem Místní hodnoty ve WinDbg

Okno Místní může obsahovat čtyři sloupce. Sloupce Name a Value jsou vždy zobrazeny a sloupce Type a Location jsou volitelné. Pokud chcete zobrazit sloupce Typ a Umístění, vyberte na panelu nástrojů tlačítka Typecast a Umístění.

Použití okna Místní hodnoty

V okně Místní hodnoty můžete udělat následující:

  • Sloupec Název zobrazuje název každé místní proměnné. Pokud je proměnná datovou strukturou, zobrazí se vedle názvu zaškrtávací políčko. Chcete-li rozbalit nebo sbalit zobrazení členů struktury, zaškrtněte nebo zrušte zaškrtnutí tohoto políčka.

  • Sloupec Hodnota zobrazuje aktuální hodnotu každé proměnné.

    • Pokud chcete zadat novou hodnotu proměnné, poklikejte na aktuální hodnotu a zadejte novou hodnotu nebo upravte starou hodnotu. (Příkazy vyjmutí, kopírování a vložení jsou k dispozici pro úpravy.) Můžete zadat libovolný výraz C++ .
    • Novou hodnotu uložíte stisknutím klávesy ENTER.
    • Pokud chcete novou hodnotu zahodit, stiskněte klávesu ESC.
    • Pokud zadáte neplatnou hodnotu, při stisknutí klávesy ENTER se stará hodnota znovu zobrazí.

    Celá čísla typu int se zobrazují jako desetinné hodnoty; celá čísla typu UINT se zobrazují v aktuálním radixu. Pokud chcete změnit aktuální radix, použijte příkaz n (Set Number Base) v okně příkazu ladicího programu.

  • Sloupec Typ (pokud je zobrazen v okně Místní hodnoty) zobrazuje aktuální datový typ každé proměnné. Každá proměnná se zobrazí ve formátu, který je vhodný pro vlastní datový typ. Datové struktury mají názvy typů ve sloupci Typ. V tomto sloupci se v dalších typech proměnných zobrazí "Enter new type" (Zadat nový typ).

    Pokud dvakrát kliknete na Zadat nový typ, můžete typ přetypovat zadáním nového datového typu. Toto přetypování změní zobrazení aktuální hodnoty této proměnné pouze v okně Místní; nezmění nic ani v ladicím programu, ani v cílovém počítači. Pokud navíc do sloupce Hodnota zadáte novou hodnotu, bude text, který zadáte, analyzován na základě skutečného typu symbolu, a ne nového typu, který jste zadali do sloupce Typ. Pokud okno Místní hodnoty zavřete a znovu otevřete, ztratíte změny datového typu.

    Do sloupce Typ můžete také zadat příkaz rozšíření. Ladicí program předá adresu symbolu tomuto rozšíření a zobrazí výsledný výstup v řadě sbalitelných řádků pod aktuálním řádkem. Pokud je například symbol v tomto řádku platnou adresou bloku prostředí vlákna, můžete zadat !teb do sloupce Typ a spustit rozšíření !teb na adrese tohoto symbolu.

  • Sloupec Umístění (pokud je zobrazen v okně Místní hodnoty) zobrazuje posun každého člena datové struktury.

  • Pokud je místní proměnná instancí třídy, která obsahuje tabulky Vtables, zobrazí sloupec Název tabulky a můžete rozbalit tabulky Vtables, aby se zobrazily ukazatele na funkce. Pokud je tabulka Vtable obsažena v základní třídě, která odkazuje na odvozenou implementaci, zobrazí se zápis _vtcast_Class označující členy, které jsou přidány z důvodu odvozené třídy. Tyto členy se rozšíří jako typ odvozené třídy.

  • Místní kontext určuje, která sada místních proměnných se zobrazí v okně Místní. Když se místní kontext z jakéhokoli důvodu změní, automaticky se aktualizuje okno Místní hodnoty. Ve výchozím nastavení odpovídá místní kontext aktuální pozici programového čítače. Další informace o tom, jak změnit místní kontext, naleznete v tématu Místní kontext.

Okno Místní obsahuje dvě tlačítka (Typecast a Lokality) a místní nabídku s dalšími příkazy. Pokud chcete získat přístup k nabídce, vyberte a podržte (nebo klikněte pravým tlačítkem) na záhlaví okna nebo vyberte ikonu v pravém horním rohu okna. Panel nástrojů a nabídka obsahují následující tlačítka a příkazy.

  • (Panel nástrojů a menu) Typecast zapíná a vypíná zobrazení sloupce Typ.

  • (Panel nástrojů a nabídka) Umístění zapne a vypne zobrazení sloupce Umístění.

  • (Pouze nabídka) Zobrazit 16bitové hodnoty jako Unicode zobrazí řetězce Unicode v tomto okně. Tento příkaz zapíná a vypíná globální nastavení, které ovlivňuje lokální okno, okno pro sledování a výstup příkazů ladicího programu. Tento příkaz je ekvivalentní použitípříkazu.enable_unicode (Povolit zobrazení unicode).

  • (Pouze nabídka) Vždy zobrazovat čísla ve výchozím radixu způsobí, že se celá čísla zobrazí ve výchozím radixu místo jejich zobrazení v desítkovém formátu. Tento příkaz zapíná a vypíná globální nastavení, které ovlivňuje okno Lokály, okno Hodinky a výstup příkazů ladicího programu. Tento příkaz je ekvivalentní použití .force_radix_output (použití radixu pro celá čísla) příkazu.

    Poznámka Příkaz Vždy zobrazovat čísla v základním formátu nemá vliv na dlouhá celá čísla. Dlouhá celá čísla jsou zobrazena v desítkovém formátu, pokud není nastaven příkaz .enable_long_status (Povolit dlouhé celé číslo). Příkaz .enable_long_status má vliv na zobrazení v okně Lokální proměnné, v okně Sledování a ve výstupu příkazu ladicího programu; v nabídce v okně Lokální proměnné neexistuje žádný ekvivalent pro tento příkaz.

  • (Pouze nabídka) Otevřít okno paměti pro vybranou hodnotu otevře nové ukotvené okno Paměti, které zobrazuje paměť začínající na adrese vybraného výrazu.

  • (Pouze nabídka) Vyvolat dt pro vybranou hodnotu paměti spustí příkaz dt (Typ zobrazení) s vybraným symbolem jako parametr. Výsledek se zobrazí v okně příkazu ladicího programu. Možnost -n se automaticky používá k rozlišení symbolu od šestnáctkové adresy. Nepoužívají se žádné další možnosti. Všimněte si, že obsah vytvořený pomocí tohoto výběru nabídky je identický s obsahem vytvořeným při spuštění příkazu dt z příkazového řádku, ale formát se mírně liší.

  • (Pouze nabídka) Panel nástrojů zapíná a vypíná panel nástrojů.

  • (Pouze nabídka) Ukotvit nebo Odzakotvit způsobí, že okno přejde do ukotveného stavu nebo jej opustí.

  • (Pouze nabídka) Přesunout do nového doku zavře okno Místní hodnoty a otevře ho v novém doku.

  • (Pouze nabídka) Nastavit jako cíl doku tabulátoru pro typ okna není pro okno Místní hodnoty k dispozici. Tato možnost je dostupná pouze pro okna Zdroje nebo Paměti.

  • (Pouze nabídka) Vždy plovoucí způsobí, že okno zůstane neukotvené, i když je přetaženo do ukotvovacího místa.

  • (Pouze nabídka) Přesunout s rámečkem způsobí přesunutí okna při přesunutí rámce WinDbg, a to i v případě, že je okno odpojeno.

  • (Pouze nabídka) Nápověda toto téma otevře v dokumentaci nástrojích pro ladění Windows.

  • (Jen v nabídce) Zavřít zavře toto okno.

Okno sledování

Ve WinDbg můžete pomocí okna Kukátko zobrazit a změnit místní proměnné. Okno Kukátko může zobrazit libovolný seznam proměnných, které chcete. Tyto proměnné můžou zahrnovat globální proměnné a místní proměnné z libovolné funkce. V okně Sledování se zobrazují hodnoty těch proměnných, které odpovídají rozsahu aktuální funkce. Hodnoty těchto proměnných můžete také změnit prostřednictvím okna Watch.

Na rozdíl od okna Místní není okno Kukátko ovlivněno změnami místního kontextu. Pouze proměnné definované v oboru aktuálního čítače programu můžou mít zobrazené nebo změněné hodnoty.

Okno Kukátko otevřete tak, že v nabídce Zobrazení zvolíte Kukátko. Můžete také stisknout ALT+2 nebo vybrat tlačítko Sledovat na panelu nástrojů. ALT+SHIFT+2 zavře okno sledování.

Následující snímek obrazovky ukazuje příklad sledovacího okna.

snímek obrazovky okna Watch ve WinDbg.

Okno Sledování může obsahovat čtyři sloupce. Sloupce Name a Value se vždy zobrazují a Type a Location jsou volitelné. Pokud chcete zobrazit sloupce Typ a Umístění, vyberte na panelu nástrojů tlačítka Typecast a Umístění.

Viz také

Další informace o řízení místních proměnných, přehled použití proměnných a změně oboru a popis dalších příkazů souvisejících s pamětí najdete v tématu čtení a zápis paměti.