Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I nomi delle variabili globali vengono archiviati nei file di simboli creati durante la compilazione di un'applicazione. Il debugger interpreta il nome di una variabile globale come indirizzo virtuale. Qualsiasi comando che accetta un indirizzo come parametro accetta anche il nome di una variabile. Pertanto, è possibile usare tutti i comandi descritti in Accesso alla memoria per indirizzo virtuale per leggere o scrivere variabili globali.
Inoltre, è possibile usare ? (Evaluate Expression) comando per visualizzare l'indirizzo associato a qualsiasi simbolo.
WinDbg fornisce elementi dell'interfaccia utente che è possibile usare (oltre ai comandi) per visualizzare e modificare le variabili globali. Vedere Visualizzazione e modifica di variabili globali in WinDbg (versione classica).
Si consideri l'esempio seguente. Si supponga di voler esaminare la MyCounter
variabile globale, ovvero un numero intero a 32 bit. Si supponga inoltre che il valore predefinito sia 10.
È possibile ottenere l'indirizzo di questa variabile e quindi visualizzarlo come segue.
0:000> ? MyCounter
Evaluate expression: 1244892 = 0012fedc
0:000> dd 0x0012fedc L1
0012fedc 00000052
Il primo output del comando indica che l'indirizzo di MyCounter
è 0x0012FEDC. È quindi possibile usare il comando d* (Display Memory) per visualizzare una parola doppia in questo indirizzo. È anche possibile usare 1244892, ovvero la versione decimale di questo indirizzo. Tuttavia, la maggior parte dei programmatori C preferisce usare 0x0012FEDC. Il secondo comando indica che il valore di MyCounter è 0x52 (decimale 82).
È anche possibile eseguire questi passaggi nel comando seguente.
0:000> dd MyCounter L1
0012fedc 00000052
Per modificare il valore di MyCounter
in decimale 83, usare il comando seguente.
0:000> ed MyCounter 83
In questo esempio viene usato l'input decimale, perché tale formato sembra più naturale per un numero intero. Tuttavia, l'output del comando d\* è ancora in formato esadecimale.
0:000> dd MyCounter L1 0012fedc 00000053