Sdílet prostřednictvím


Přístup k globálním proměnným

Názvy globálních proměnných jsou uloženy v souborech symbolů, které se vytvoří při kompilaci aplikace. Ladicí program interpretuje název globální proměnné jako virtuální adresu. Libovolný příkaz, který přijímá adresu jako parametr, přijímá také název proměnné. Proto můžete použít všechny příkazy popsané v přístupu k paměti pomocí virtuální adresy ke čtení nebo zápisu globálních proměnných.

Kromě toho můžete použít příkaz ? (Vyhodnocení výrazu) k zobrazení adresy přidružené k libovolnému symbolu.

WinDbg poskytuje prvky uživatelského rozhraní, které můžete použít (kromě příkazů) k zobrazení a úpravě globálních proměnných. Viz Zobrazení a úpravy globálních proměnných v WinDbg (Classic)

Podívejte se na následující příklad. Předpokládejme, že chcete prozkoumat MyCounter globální proměnnou, což je 32bitové celé číslo. Předpokládejme také, že výchozí radix je 10.

Adresu této proměnné můžete získat a pak ji zobrazit následujícím způsobem.

0:000> ? MyCounter 
Evaluate expression: 1244892 = 0012fedc
0:000> dd 0x0012fedc L1 
0012fedc  00000052

První výstup příkazu vám řekne, že adresa MyCounter je 0x0012FEDC. Potom můžete pomocí příkazu d* (Zobrazit paměť) zobrazit jedno dvojité slovo na této adrese. (Můžete také použít 1244892, což je desítková verze této adresy. Většina programátorů jazyka C však preferuje použití 0x0012FEDC.) Druhý příkaz vám řekne, že hodnota MyCounter je 0x52 (desítkové číslo 82).

Tyto kroky můžete provést také v následujícím příkazu.

0:000> dd MyCounter L1 
0012fedc  00000052

Pokud chcete změnit hodnotu MyCounter na desítkové číslo 83, použijte následující příkaz.

0:000> ed MyCounter 83 

Tento příklad používá desetinné číslo, protože tento formát vypadá přirozeněji pro celé číslo. Výstup příkazu d\* je ale stále v šestnáctkovém formátu.

0:000> dd MyCounter L1 0012fedc  00000053