r (Registros)
O comando r exibe ou modifica registros, registros de ponto flutuante, sinalizadores, pseudo-registros e aliases de nome fixo.
User-Mode
[~Thread] r[M Mask|F|X|?] [ Register[:[Num]Type] [= [Value]] ]
r.
Kernel-Mode
[Processor] r[M Mask|F|X|Y|YI|?] [ Register[:[Num]Type] [= [Value]] ]
r.
Parâmetros
Processador
Especifica o processador do qual os registros são lidos. O valor padrão é zero. Se você especificar Processador, não poderá incluir o parâmetro Register – todos os registros serão exibidos. Para obter mais informações sobre a sintaxe, consulte Sintaxe de vários processadores. Você pode especificar processadores somente no modo kernel.
Thread
Especifica o thread do qual os registros são lidos. Se você não especificar um thread, o thread atual será usado. Para obter mais informações sobre a sintaxe, consulte Sintaxe de thread. Você pode especificar threads somente no modo de usuário.
MáscaraM
Especifica a máscara a ser usada quando o depurador exibe os registros. O "M" deve ser uma letra maiúscula. Mask é uma soma de bits que indicam algo sobre a exibição de registro. O significado dos bits depende do processador e do modo (consulte as tabelas na seção Comentários a seguir para obter mais informações). Se você omitir M, a máscara padrão será usada. Você pode definir ou exibir a máscara padrão usando o comando Rm (Máscara de Registro).
F
Exibe os registros de ponto flutuante. O "F" deve ser uma letra maiúscula. Essa opção é equivalente a M 0x4.
X
Exibe os registros do SSE XMM. Essa opção é equivalente a M 0x40.
Y
Exibe os registros do AVX YMM. Essa opção é equivalente a M 0x200.
YI
Exibe os registros inteiros do AVX YMM. Essa opção é equivalente a M 0x400.
Z
Exibe os registros do AVX-512 YMM (zmm0-zmm31) no formato de ponto flutuante.
ZI
Exibe os registros do AVX-512 YMM (zmm0-zmm31) no formato inteiro.
K
Exiba os registros de predicado do Opmask AVX-512 (K0-K7).
?
(Somente atribuição de pseudo-registro) Faz com que o pseudo-registro adquira informações digitados. Qualquer tipo é permitido. Para obter mais informações sobre a sintaxe r? , consulte Exemplos do programa de comando do depurador.
Registrar
Especifica o registro, o sinalizador, o pseudo-registro ou o alias de nome fixo a serem exibidos ou modificados. Você não deve preceder esse parâmetro com o sinal em (@). Para obter mais informações sobre a sintaxe, consulte Registrar sintaxe.
Núm
Especifica o número de elementos a serem exibidos. Se você omitir esse parâmetro, mas incluir Tipo, o comprimento do registro completo será exibido.
Type
Especifica o formato de dados no qual cada elemento de registro será exibido. Você pode usar Type somente com registros de vetor de 64 bits e 128 bits. Você pode especificar vários tipos.
Você pode especificar um ou mais dos valores a seguir.
Tipo | Formato de exibição |
---|---|
Ib |
Byte assinado |
Ub |
Byte sem sinal |
Iw |
Palavra assinada |
uw |
Palavra sem sinal |
id |
DWORD assinado |
Ud |
DWORD sem sinal |
Qi |
Palavra quádrupla assinada |
Uq |
Palavra quádrupla sem sinal |
f |
Ponto flutuante de 32 bits |
d |
Ponto flutuante de 64 bits |
Valor
Especifica o valor a ser atribuído ao registro. Para obter mais informações sobre a sintaxe, consulte Sintaxe de expressão numérica.
.
Exibe os registros usados na instrução atual. Se nenhum registro for usado, nenhuma saída será exibida.
Ambiente
Item | Descrição |
---|---|
Modos | Modo de usuário, modo kernel |
Destinos | Ao vivo, despejo de memória |
Plataformas | Tudo |
Informações adicionais
Para obter mais informações sobre o contexto de registro e outras configurações de contexto, consulte Alterando contextos.
Comentários
Se você não especificar Registrar, o comando r exibirá todos os registros de ponto não flutuante e o comando rF exibirá todos os registros de ponto flutuante. Você pode alterar esse comportamento usando o comando rm (Máscara de Registro).
Se você especificar Registrar , mas omitir o sinal de igual (=) e o parâmetro Value , o comando exibirá o valor atual do registro.
Se você especificar Registrar e um sinal de igual (=), mas omitir Value, o comando exibirá o valor atual do registro e solicitará um novo valor.
Se você especificar Registrar, o sinal de igual (=) e Valor, o comando alterará o registro para conter o valor. (Se o modo silencioso estiver ativo, você poderá omitir o sinal de igual. Você pode ativar o modo silencioso usando o comando sq (Definir Modo Silencioso). No modo kernel, você também pode ativar o modo silencioso usando a variável de ambiente KDQUIET.)
Você pode especificar vários registros, separados por vírgulas.
No modo de usuário, o comando r exibe registros associados ao thread atual. Para obter mais informações sobre os threads, consulte Controlando processos e threads.
No modo kernel, o comando r exibe registros associados ao contexto de registro atual. Você pode definir o contexto de registro para corresponder a um thread específico, registro de contexto ou quadro de interceptação. Somente os registros mais importantes para o contexto de registro especificado são realmente exibidos e você não pode alterar seus valores. Para obter mais informações sobre o contexto de registro, consulte Registrar Contexto.
Quando você especifica um registro de ponto flutuante por nome, a opção F não é necessária. Quando você especifica um único registro de ponto flutuante, o valor hexadecimal bruto é exibido além do valor decimal.
Os bits mask a seguir têm suporte para um processador baseado em x86 ou um processador baseado em x64.
bit | Valor | Descrição |
---|---|---|
0 1 | 0x1 0x2 | Exibe os registros inteiros básicos. (Definir um ou ambos os bits tem o mesmo efeito.) |
2 |
0x4 |
Exibe os registros de ponto flutuante. |
3 |
0x8 |
Exibe os registros de segmento. |
4 |
0x10 |
Exibe os registros MMX. |
5 |
0x20 |
Exibe os registros de depuração. No modo kernel, a configuração desse bit também exibe o registro CR4. |
6 |
0x40 |
Exibe os registros do SSE XMM. |
7 |
0x80 |
(Somente modo kernel) Exibe os registros de controle, por exemplo, CR0, CR2, CR3 e CR8. |
8 |
0x100 |
(Somente modo kernel) Exibe os registros do descritor e do estado da tarefa. |
9 |
0x200 |
Exibe os registros do AVX YMM no ponto flutuante. |
10 |
0x400 |
Exibe os registros do AVX YMM em inteiros decimais. |
11 |
0x800 |
Exibe os registros do AVX XMM em inteiros decimais. |
Os exemplos de código a seguir mostram comandos r para um processador baseado em x86.
No modo kernel, o comando a seguir mostra os registros do processador 2.
1: kd> 2r
No modo de usuário, o comando a seguir mostra os registros do thread 2.
0:000> ~2 r
No modo de usuário, o comando a seguir exibe todos os registros eax associados a todos os threads (em ordem de índice de thread).
0:000> ~* r eax
O comando a seguir define o registro eax do thread atual como 0x000000FF.
0:000> r eax=0x000000FF
O comando a seguir define o registro st0 como 1.234e+10 (o F é opcional).
0:000> rF st0=1.234e+10
O comando a seguir exibe o sinalizador zero.
0:000> r zf
O comando a seguir exibe o registro xmm0 como 16 bytes não assinados e exibe o conteúdo completo do registro xmm1 no formato de ponto flutuante de precisão dupla.
0:000> r xmm0:16ub, xmm1:d
Se a sintaxe atual for C++, você deverá preceder os registros por um sinal de at (@). Portanto, você pode usar o comando a seguir para copiar o registro ebx para o registro eax .
0:000> r eax = @ebx
O comando a seguir exibe pseudo-registros da mesma forma que o comando r exibe registros.
0:000> r $teb
Você também pode usar o comando r para criar aliases de nome fixo. Esses aliases não são registros ou pseudo-registros, mesmo que estejam associados ao comando r . Para obter mais informações sobre esses aliases, consulte Usando aliases.
Aqui está um exemplo do comando r. em um processador baseado em x86. A última entrada da pilha de chamadas precede o próprio comando.
01004af3 8bec mov ebp,esp
0:000> r.
ebp=0006ffc0 esp=0006ff7c
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de