r(레지스터)
r 명령은 레지스터, 부동 소수점 레지스터, 플래그, 의사 레지스터 및 고정 이름 별칭을 표시하거나 수정합니다.
사용자 모드
[~Thread] r[M Mask|F|X|?] [ Register[:[Num]Type] [= [Value]] ]
r.
커널 모드
[Processor] r[M Mask|F|X|Y|YI|?] [ Register[:[Num]Type] [= [Value]] ]
r.
매개 변수
프로세서
레지스터를 읽는 프로세서를 지정합니다. 기본값은 0입니다. 프로세서를 지정하는 경우 Register 매개 변수를 포함할 수 없습니다. 모든 레지스터가 표시됩니다. 구문에 대한 자세한 내용은 다중 프로세서 구문을 참조하세요. 커널 모드에서만 프로세서를 지정할 수 있습니다.
스레드
레지스터를 읽는 스레드를 지정합니다. 스레드를 지정하지 않으면 현재 스레드가 사용됩니다. 구문에 대한 자세한 내용은 스레드 구문을 참조 하세요. 사용자 모드에서만 스레드를 지정할 수 있습니다.
M 마스크
디버거가 레지스터를 표시할 때 사용할 마스크를 지정합니다. "M"은 대문자여야 합니다. 마스크 는 레지스터 디스플레이에 대한 항목을 나타내는 비트의 합계입니다. 비트의 의미는 프로세서와 모드에 따라 달라집니다(자세한 내용은 다음 설명 섹션의 표 참조). M을 생략하면 기본 마스크가 사용됩니다. Rm(마스크 등록) 명령을 사용하여 기본 마스크를 설정하거나 표시할 수 있습니다.
F
부동 소수점 레지스터를 표시합니다. "F"는 대문자여야 합니다. 이 옵션은 M 0x4 동일합니다.
X
SSE XMM 레지스터를 표시합니다. 이 옵션은 M 0x40 동일합니다.
Y
AVX YMM 레지스터를 표시합니다. 이 옵션은 M 0x200 동일합니다.
이순신
AVX YMM 정수 레지스터를 표시합니다. 이 옵션은 M 0x400 동일합니다.
Z(Z)
AVX-512 YMM 레지스터(zmm0-zmm31)를 부동 소수점 형식으로 표시합니다.
ZI
AVX-512 YMM 레지스터(zmm0-zmm31)를 정수 형식으로 표시합니다.
K(K)
AVX-512 Opmask 조건자 레지스터(K0-K7)를 표시합니다.
?
(의사 등록 할당에만 해당) 의사 레지스터가 형식화된 정보를 획득하도록 합니다. 모든 형식이 허용됩니다. r? 구문에 대한 자세한 내용은 디버거 명령 프로그램 예제를 참조하세요.
등록기
표시하거나 수정할 레지스터, 플래그, 의사 레지스터 또는 고정 이름 별칭을 지정합니다. 이 매개 변수 앞에 at(@) 기호를 사용하면 안 됩니다. 구문에 대한 자세한 내용은 레지스터 구문을 참조 하세요.
Num
표시할 요소 수를 지정합니다. 이 매개 변수를 생략하지만 Type을 포함하면 전체 레지스터 길이가 표시됩니다.
형
각 레지스터 요소를 표시할 데이터 형식을 지정합니다. 64비트 및 128비트 벡터 레지스터에서만 Type을 사용할 수 있습니다. 여러 형식을 지정할 수 있습니다.
다음 값 중 하나 이상을 지정할 수 있습니다.
Type | 표시 형식 |
---|---|
ib |
서명된 바이트 |
ub |
부호 없는 바이트 |
iw |
서명된 단어 |
uw |
부호 없는 단어 |
id |
서명된 DWORD |
ud |
서명되지 않은 DWORD |
iq |
서명된 쿼드 단어 |
uq |
부호 없는 쿼드 단어 |
f |
32비트 부동 소수점 |
d |
64비트 부동 소수점 |
Value
레지스터에 할당할 값을 지정합니다. 구문에 대한 자세한 내용은 숫자 식 구문을 참조 하세요.
.
현재 명령에 사용된 레지스터를 표시합니다. 레지스터를 사용하지 않으면 출력이 표시되지 않습니다.
환경
항목 | 설명 |
---|---|
모드 | 사용자 모드, 커널 모드 |
대상 | 라이브, 크래시 덤프 |
플랫폼 | 모두 |
추가 정보
레지스터 컨텍스트 및 기타 컨텍스트 설정에 대한 자세한 내용은 컨텍스트 변경을 참조 하세요.
설명
Register를 지정하지 않으면 r 명령은 모든 부동 소수점 레지스터를 표시하고 rF 명령은 모든 부동 소수점 레지스터를 표시합니다. rm(마스크 등록) 명령을 사용하여 이 동작을 변경할 수 있습니다.
Register를 지정하지만 등호(=) 및 Value 매개 변수를 생략하면 레지스터의 현재 값이 표시됩니다.
Register 및 equal sign(=)을 지정하지만 값을 생략하면 이 명령은 레지스터의 현재 값을 표시하고 새 값을 묻는 메시지를 표시합니다.
Register, equal sign(=) 및 Value를 지정하면 이 명령은 레지스터를 변경하여 값을 포함합니다. (자동 모드가 활성화된 경우 등호를 생략할 수 있습니다. sq(자동 모드 설정) 명령을 사용하여 자동 모드를 켤 수 있습니다. 커널 모드에서는 KDQUIET 환경 변수를 사용하여 자동 모드를 설정할 수도 있습니다.)
여러 레지스터를 쉼표로 구분하여 지정할 수 있습니다.
사용자 모드 에서 r 명령은 현재 스레드와 연결된 레지스터를 표시합니다. 스레드에 대한 자세한 내용은 프로세스 및 스레드 제어를 참조 하세요.
커널 모드 에서 r 명령은 현재 레지스터 컨텍스트와 연결된 레지스터를 표시합니다. 특정 스레드, 컨텍스트 레코드 또는 트랩 프레임과 일치하도록 레지스터 컨텍스트를 설정할 수 있습니다. 지정된 레지스터 컨텍스트에 대한 가장 중요한 레지스터만 실제로 표시되며 해당 값을 변경할 수 없습니다. 레지스터 컨텍스트에 대한 자세한 내용은 컨텍스트 등록을 참조 하세요.
이름으로 부동 소수점 레지스터를 지정하는 경우 F 옵션이 필요하지 않습니다. 단일 부동 소수점 레지스터를 지정하면 10진수 값 외에 원시 16진수 값이 표시됩니다.
다음 마스크 비트는 x86 기반 프로세서 또는 x64 기반 프로세서에 대해 지원됩니다.
bit | 값 | 설명 |
---|---|---|
0 1 | 0x1 0x2 | 기본 정수 레지스터를 표시합니다. (이러한 비트 중 하나 또는 둘 다를 설정하면 효과가 동일합니다.) |
2 |
0x4 |
부동 소수점 레지스터를 표시합니다. |
3 |
0x8 |
세그먼트 레지스터를 표시합니다. |
4 |
0x10 |
MMX 레지스터를 표시합니다. |
5 |
0x20 |
디버그 레지스터를 표시합니다. 커널 모드에서 이 비트를 설정하면 CR4 레지스터도 표시됩니다. |
6 |
0x40 |
SSE XMM 레지스터를 표시합니다. |
7 |
0x80 |
(커널 모드에만 해당) 컨트롤 레지스터(예: CR0, CR2, CR3 및 CR8)를 표시합니다. |
8 |
0x100 |
(커널 모드에만 해당) 설명자 및 작업 상태 레지스터를 표시합니다. |
9 |
0x200 |
부동 소수점에 AVX YMM 레지스터를 표시합니다. |
10 |
0x400 |
AVX YMM 레지스터를 10진수 정수로 표시합니다. |
11 |
0 x 800 |
AVX XMM 레지스터를 10진수 정수로 표시합니다. |
다음 코드 예제에서는 x86 기반 프로세서에 대 한 r 명령을 보여 줍니다.
커널 모드에서 다음 명령은 프로세서 2에 대한 레지스터를 보여 줍니다.
1: kd> 2r
사용자 모드에서 다음 명령은 스레드 2에 대한 레지스터를 보여 줍니다.
0:000> ~2 r
사용자 모드에서 다음 명령은 모든 스레드와 연결된 모든 eax 레지스터를 스레드 인덱스 순서로 표시합니다.
0:000> ~* r eax
다음 명령은 현재 스레드에 대한 eax 레지스터를 0x000000FF 설정합니다.
0:000> r eax=0x000000FF
다음 명령은 st0 레지스터를 1.234e+10으로 설정합니다(F는 선택 사항임).
0:000> rF st0=1.234e+10
다음 명령은 0 플래그를 표시합니다.
0:000> r zf
다음 명령은 xmm0 레지스터를 부호 없는 16바이트로 표시한 다음 xmm1 레지스터의 전체 내용을 배정밀도 부동 소수점 형식으로 표시합니다.
0:000> r xmm0:16ub, xmm1:d
현재 구문이 C++인 경우 레지스터 앞에 at sign(@)을 지정해야 합니다. 따라서 다음 명령을 사용하여 eax 레지스터에 ebx 레지스터를 복사할 수 있습니다.
0:000> r eax = @ebx
다음 명령은 r 명령이 레지스터를 표시하는 것과 동일한 방식으로 의사 레지스터를 표시합니다.
0:000> r $teb
r 명령을 사용하여 고정 이름 별칭을 만들 수도 있습니다. 이러한 별칭은 r 명령과 연결되어 있더라도 레지스터 또는 의사 레지스터가 아닙니다. 이러한 별칭에 대한 자세한 내용은 별칭 사용을 참조 하세요.
다음은 x86 기반 프로세서의 r. 명령 예제입니다. 호출 스택의 마지막 항목은 명령 자체 앞에 섰습니다.
01004af3 8bec mov ebp,esp
0:000> r.
ebp=0006ffc0 esp=0006ff7c