Compartilhar via


Acessando variáveis globais

Os nomes das variáveis globais são armazenados nos arquivos de símbolo criados quando um aplicativo é compilado. O depurador interpreta o nome de uma variável global como um endereço virtual. Qualquer comando que aceite um endereço como parâmetro também aceita o nome de uma variável. Portanto, você pode usar todos os comandos descritos em Acessando Memória por Endereço Virtual para ler ou gravar variáveis globais.

Além disso, você pode usar o ? (Avaliar expressão) para exibir o endereço associado a qualquer símbolo.

O WinDbg fornece elementos de interface do usuário que você pode usar (além de comandos) para exibir e editar variáveis globais. Consulte Exibindo e editando variáveis globais no WinDbg (clássico).

Considere o exemplo a seguir. Suponha que você queira examinar a MyCounter variável global, que é um inteiro de 32 bits. Suponha também que o radix padrão seja 10.

Você pode obter o endereço dessa variável e exibi-lo da seguinte maneira.

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

A primeira saída de comando informa que o endereço de MyCounter é 0x0012FEDC. Em seguida, você pode usar o comando d* (Exibir Memória) para exibir uma palavra dupla neste endereço. (Você também pode usar 1244892, que é a versão decimal desse endereço. No entanto, a maioria dos programadores C prefere usar 0x0012FEDC.) O segundo comando informa que o valor de MyCounter é 0x52 (decimal 82).

Você também pode executar essas etapas no comando a seguir.

0:000> dd MyCounter L1 
0012fedc  00000052

Para alterar o valor de MyCounter para decimal 83, use o comando a seguir.

0:000> ed MyCounter 83 

Este exemplo usa entrada decimal, porque esse formato parece mais natural para um inteiro. No entanto, a saída do comando d\* ainda está no formato hexadecimal.

0:000> dd MyCounter L1 0012fedc  00000053