rm (Register Mask)
The rm command modifies or displays the register display mask. This mask controls how registers are displayed by the r (Registers) command.
rm
rm ?
rm Mask
Parameters
?
Displays a list of possible Mask bits.
Mask
Specifies the mask to use when the debugger displays the registers. Mask is a sum of bits that indicate something about the register display. The meaning of the bits depends on the processor and the mode. For more information; see the tables in the following Remarks section.
Environment
Item | Description |
---|---|
Modes | User mode, kernel mode |
Targets | Live, crash dump |
Platforms | All |
Remarks
The "m" in the command name must be a lowercase letter.
If you use rm with no parameters, the current value is displayed, along with an explanation about its bits.
To display the basic integer registers, you must set bit 0 (0x1) or bit 1 (0x2). By default, 0x1 is set for 32-bit targets and 0x2 is set for 64-bit targets. You cannot set these two bits at the same time--if you try to set both bits, 0x2 overrides 0x1.
You can override the default mask by using the r (Registers) command together with the M option.
The following Mask bits are supported for an x86-based processor or an x64-based processor.
Bit | Value | Description |
---|---|---|
0 1 | 0x1 0x2 | Displays the basic integer registers. (Setting one or both of these bits has the same effect.) |
2 |
0x4 |
Displays the floating-point registers. |
3 |
0x8 |
Displays the segment registers. |
4 |
0x10 |
Displays the MMX registers. |
5 |
0x20 |
Displays the debug registers. In kernel mode, setting this bit also displays the CR4 register. |
6 |
0x40 |
Displays the SSE XMM registers. |
7 |
0x80 |
(Kernel mode only) Displays the control registers, for example CR0, CR2, CR3 and CR8. |
8 |
0x100 |
(Kernel mode only) Displays the descriptor and task state registers. |
9 |
0x200 |
Displays the AVX YMM registers in floating point. |
10 |
0x400 |
Displays the AVX YMM registers in decimal integers. |
11 |
0x800 |
Displays the AVX XMM registers in decimal integers. |
12 | 0x1000 | Displays the AVX-512 zmm0-zmm31 registers in floating point format. |
13 |
0x2000 |
Displays the AVX-512 zm00-zmm31 registers in integer format. |
14 |
0x4000 |
Displays the AVX-512 k0-k7 registers. |
Examples
Enable the integer state and segment registers.
0: kd> rm 0x00a
0: kd> rm
Register output mask is a:
2 - Integer state (64-bit)
8 - Segment registers
Enable 0x1000 (Displays the AVX-512 zmm0-zmm31 registers in floating point format).
0: kd> rm 0x100a
0: kd> rm
Register output mask is 100a:
2 - Integer state (64-bit)
8 - Segment registers
1000 - AVX-512 ZMM registers
Enable mask 0x2000 (Displays the AVX-512 zmm00-zmm31 registers in integer format).
0: kd> rm 0x200a
0: kd> rm
Register output mask is 200a:
2 - Integer state (64-bit)
8 - Segment registers
2000 - AVX-512 ZMM Integer registers
Enable all AVX-512 register masks:
0: kd> rm 0x700a
0: kd> rm
Register output mask is 700a:
2 - Integer state (64-bit)
8 - Segment registers
1000 - AVX-512 ZMM registers
2000 - AVX-512 ZMM Integer registers
4000 - AVX-512 Opmask registers
If you try and set a register mask on hardware that does not support it, the invalid bits of the register mask will be ignored.
kd> rm 0x100a
Ignored invalid bits 1000
kd> rm
Register output mask is a:
2 - Integer state (64-bit)
8 - Segment registers