r (registros)

El comando r muestra o modifica los registros, los registros de punto flotante, las marcas, los pseudo-registros y los alias de nombre fijo.

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

Procesador
Especifica el procesador desde el que se leen los registros. El valor predeterminado es cero. Si especifica Processor, no puede incluir el parámetro Register ; se muestran todos los registros. Para obtener más información sobre la sintaxis, vea Sintaxis de varios procesadores. Solo puede especificar procesadores en modo kernel.

Hilo
Especifica el subproceso desde el que se leen los registros. Si no especifica un subproceso, se usa el subproceso actual. Para obtener más información sobre la sintaxis, vea Sintaxis de subprocesos. Solo puede especificar subprocesos en modo de usuario.

Máscara M
Especifica la máscara que se va a usar cuando el depurador muestra los registros. "M" debe ser una letra mayúscula. Mask es una suma de bits que indican algo sobre la pantalla de registro. El significado de los bits depende del procesador y del modo (vea las tablas de la sección Comentarios siguientes para obtener más información). Si omite M, se usa la máscara predeterminada. Puede establecer o mostrar la máscara predeterminada mediante el comando Rm (Register Mask).

F
Muestra los registros de punto flotante. "F" debe ser una letra mayúscula. Esta opción es equivalente a M 0x4.

X
Muestra los registros SSE XMM. Esta opción es equivalente a M 0x40.

Y
Muestra los registros de AVX YMM. Esta opción es equivalente a M 0x200.

YI
Muestra los registros enteros de AVX YMM. Esta opción es equivalente a M 0x400.

Z
Muestra los registros de AVX-512 YMM (zmm0-zmm31) en formato de punto flotante.

ZI
Muestra los registros de AVX-512 YMM (zmm0-zmm31) en formato entero.

K
Muestra los registros del predicado opmask de AVX-512 (K0-K7).

?
(Solo asignación de pseudo-registro) Hace que el pseudo-register adquiera información con tipo. Se permite cualquier tipo. Para obtener más información sobre la sintaxis r? , vea Ejemplos del programa de comandos del depurador.

Registro
Especifica el alias register, flag, pseudo-register o fixed-name para mostrar o modificar. No debe preceder a este parámetro con en el signo (@). Para obtener más información sobre la sintaxis, vea Register Syntax.

Num
Especifica el número de elementos que se van a mostrar. Si omite este parámetro pero incluye Type, se muestra la longitud completa del registro.

Tipo
Especifica el formato de datos en el que se va a mostrar cada elemento de registro. Solo puede usar Type con registros vectoriales de 64 y 128 bits. Puede especificar varios tipos.

Puede especificar uno o varios de los valores siguientes.

Tipo Formato de presentación

Ib

Byte con signo

Ub

Byte sin signo

Iw

Palabra firmada

uw

Palabra sin signo

id

DWORD firmado

ud

DWORD sin firmar

Iq

Palabra cuádruple firmada

Uq

Sin signo de cuatro palabras

f

Punto flotante de 32 bits

d

Punto flotante de 64 bits

Valor
Especifica el valor que se va a asignar al registro. Para obtener más información sobre la sintaxis, vea Sintaxis de expresión numérica.

.
Muestra los registros usados en la instrucción actual. Si no se usan registros, no se muestra ninguna salida.

Entorno

Elemento Descripción
Modos Modo de usuario, modo kernel
Targets Volcado de memoria activo y de memoria
Plataformas All

Información adicional

Para obtener más información sobre el contexto de registro y otras opciones de configuración de contexto, consulte Cambio de contextos.

Comentarios

Si no especifica Register, el comando r muestra todos los registros de punto flotante y el comando rF muestra todos los registros de punto flotante. Puede cambiar este comportamiento mediante el comando rm (Register Mask).

Si especifica Register pero omite el signo igual (=) y el parámetro Value , el comando muestra el valor actual del registro.

Si especifica Register y un signo igual (=) pero omite Value, el comando muestra el valor actual del registro y solicita un nuevo valor.

Si especifica Register, el signo igual (=) y Value, el comando cambia el registro para que contenga el valor. (Si el modo silencioso está activo, puede omitir el signo igual. Puede activar el modo silencioso mediante el comando sq (Establecer modo silencioso). En el modo kernel, también puede activar el modo silencioso mediante la variable de entorno KDQUIET).

Puede especificar varios registros, separados por comas.

En el modo de usuario, el comando r muestra los registros asociados al subproceso actual. Para obtener más información sobre los subprocesos, vea Control de procesos y subprocesos.

En el modo kernel, el comando r muestra los registros asociados al contexto de registro actual. Puede establecer el contexto de registro para que coincida con un subproceso específico, un registro de contexto o un marco de captura. Solo se muestran los registros más importantes para el contexto de registro especificado y no se pueden cambiar sus valores. Para obtener más información sobre el contexto de registro, vea Register Context.

Cuando se especifica un registro de punto flotante por nombre, no se requiere la opción F . Cuando se especifica un único registro de punto flotante, se muestra el valor hexadecimal sin formato, además del valor decimal.

Los siguientes bits mask son compatibles con un procesador basado en x86 o un procesador basado en x64.

bit Value Descripción

0 1

0x1 0x2

Muestra los registros enteros básicos. (Establecer uno o ambos bits tiene el mismo efecto).

2

0x4

Muestra los registros de punto flotante.

3

0x8

Muestra los registros de segmentos.

4

0x10

Muestra los registros MMX.

5

0x20

Muestra los registros de depuración. En el modo kernel, al establecer este bit también se muestra el registro CR4.

6

0x40

Muestra los registros XMM de SSE.

7

0x80

(solo modo kernel) Muestra los registros de control, por ejemplo CR0, CR2, CR3 y CR8.

8

0x100

(solo modo kernel) Muestra los registros de estado de tarea y descriptor.

9

0x200

Muestra los registros de AVX YMM en punto flotante.

10

0x400

Muestra los registros de AVX YMM en enteros decimales.

11

0x800

Muestra los registros de AVX XMM en enteros decimales.

En los ejemplos de código siguientes se muestran comandos r para un procesador basado en x86.

En el modo kernel, el siguiente comando muestra los registros del procesador 2.

1: kd> 2r 

En el modo de usuario, el siguiente comando muestra los registros para el subproceso 2.

0:000> ~2 r 

En el modo de usuario, el siguiente comando muestra todos los registros de eax asociados a todos los subprocesos (en orden de índice de subprocesos).

0:000> ~* r eax

El siguiente comando establece el registro eax del subproceso actual en 0x000000FF.

0:000> r eax=0x000000FF

El comando siguiente establece el registro st0 en 1.234e+10 (F es opcional).

0:000> rF st0=1.234e+10

El comando siguiente muestra la marca cero.

0:000> r zf 

El siguiente comando muestra el registro xmm0 como 16 bytes sin signo y, a continuación, muestra el contenido completo del registro xmm1 en formato de punto flotante de precisión doble.

0:000> r xmm0:16ub, xmm1:d 

Si la sintaxis actual es C++, debe preceder a los registros mediante un signo at (@). Por lo tanto, puede usar el siguiente comando para copiar el registro ebx en el registro eax .

0:000> r eax = @ebx

El comando siguiente muestra pseudo-registros de la misma manera que el comando r muestra los registros.

0:000> r $teb

También puede usar el comando r para crear alias de nombre fijo. Estos alias no son registros ni pseudo-registros, aunque estén asociados con el comando r . Para obtener más información sobre estos alias, consulte Uso de alias.

Este es un ejemplo del comando r. en un procesador basado en x86. La última entrada de la pila de llamadas precede al propio comando.

01004af3 8bec            mov     ebp,esp
0:000> r.
ebp=0006ffc0  esp=0006ff7c