. 네이티브 디버깅에서는 슈도레지스터라고 불리는 특별한 값을 액세스 할 수 있다.
슈도 레지스터 | 설명 |
@EAX | 리턴값 레지스터(32비트) |
@BL | EBX의 하위 워드 레지스터(16비트) |
@MM0 | MMX 레지스터 0 |
@XMM1 | Streaming SIMD Extensions (SSE) 레지스터 1 |
$ERR | 마지막 에러값(GetLastError()) |
$TIB | Thread Information block |
- 슈도레지스터 앞에 @를 명시할 수 있다. 하지만 앞으로 나오는 버전에서는 $만 지원한다. 앞으로를 위해서도 $를 사용하는게 좋을것이다. (EAX, BL, MM0, XMM1, ERR, TIB 라고 입력해도 디버깅 창에 레지스터의 값이 보인다.)
<조사식 창의 표현>
. 데이터 형식화와 표현식 평가
형식 코드를 사용하는 방법은 변수 다음에 콤마를 찍고 원하는 형식을 입력한다.
지정자 | 형식 | 값 | 표시 |
D, i | 부호 있는 10진 정수 | (int)0xF000F065, d | -268373915 |
U | 부호 없는 10진 정수 | 0×0065,u | 101 |
o | 부호 있는 8진 정수 | 0xF065 | 0170145 |
x, X | 16진 정수 | 61541,X | 0x0000F065 |
L, h | D, I, u, o, x, X 에 대한 long 또는 short 접두사 | 0×00406042,hx | 0x0c22 |
F | 부호 있는 부동 소수점 | 3./2.,f | 1.500000 |
E | 부호 있는 공학용 표기법 | 3./2.,e | 1.500000e+000 |
G | 부호 있는 부동 소수점 또는 부호있는 공학용 표기법 중에서 짧은 형식 | 3.2/2.,g | 1.5 |
C | 단일 문자 | 0×0065,c | 101 ‘e’ |
S | 문자열 | szHiWorld,s | ‘Hello world’ |
Su | 유니코드 문자열 | szWHiWorld,su | ‘Hello world’ |
Hr | HRESULT 또는 Win32오류 코드. 이제는 디버거가 자동으로 HRESULT를 디코딩하므로 지정자가 필요없다. | 0×00000000,hr | S_OK |
Wc | Window 클래스 플래그 | 0×00000040,wc | WC_DEFAULTCHAR |
Wm | Window 메시지 번호 | 0×0010,wm | WM_CLOSE |
<[조사식] 창 변수에 적용 가능한 기호 형식>
기호 | 형식 |
Ma | ASCII 문자 64개 |
M | 16바이트 16진수 뒤에 ASCII 문자 16개 |
Mb | 16바이트 16진수 뒤에 ASCII 문자 16개 |
Mw | 단어 8개 |
Md | 더블워드 4개 |
Mq | 쿼드워드2개 |
Mu | 2바이트 유니코드 문자 |
# | 지정된 숫자만큼 메모리 위치에 대한 포인터를 확장한다. |
<[조사식] 창 메모리 덤프에 적용 가능한 기호 형식>
<소스코드>
<조사식 창>
. 알려지지 않은 슈도 레지스터
문서화 되지 않은 슈도 레지스터가 존재합니다. (이 항목은 언제 사라질지 모릅니다)
슈도 레지스터 | 설명 |
$HANDLES | 현재 프로세스에서 열린 핸들의 개수 |
$VFRAME | IA32 : 다음 스택 프레임 표준 스택프레임 : 이전 항목의 EBP |
<설명>
. $CLK 슈도 레지스터
- $CLK 슈도 레지스터는 기초적인 타이머 역할을 수행한다. (단위는 잘 모르겠다.)
위 레지스터로 간단한 코드 시간을 계산할 수 있다.
- 테스트 하고자 하는 코드 앞과 종료지점에 브레이크 포인트를 설정한 후. 테스트용 코드 앞에 멈춘다.
- $CLK 값을 확인한다.
- $CLK=0 을 입력하여 $CLK 값을 초기화 한다.
- 다음 브레이크 포인트까지 실행한다.$CLK 값을 확인한다.
- 테스트 하고자 하는 코드 앞과 종료지점에 브레이크 포인트를 설정한 후. 테스트용 코드 앞에 멈춘다.

직접 작성하신건가요? 좋은 정보인데요 퍼가도 되나요?
| 2008-12-12 @ 3:58 오후
퍼가셔도 상관은없습니다. +ㅁ+
| 2008-12-15 @ 1:27 오전