. 네이티브 디버깅에서는 슈도레지스터라고 불리는 특별한 값을 액세스 할 수 있다.





























슈도 레지스터


설명


@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 값을 확인한다.

Post to Twitter