티스토리 뷰

반응형

int i = 0x12345678; 

이런 값이 있을 때 디버거 창에서 해당 변수 이름 앞에다 by, wo, dw을 붙이면 변수의 값을 BYTE, WORD, DWORD 형식으로 볼 수 있다. 레지스터값도 마찬가지. 

 

i    | 0x12345678 | int 
by i | 0x78 'x'   | unsigned char 
wo i | 0x5678     | unsigned short 
dw i | 0x12345678 | unsigned long 

 

 

 


변수를 8진수, 10진수, 16진수로 보기 위해서는 포맷 지정자를 이용한다. 

 

i   | 42         | int 
i,o | 052        | int 
i,d | 42         | int 
i,x | 0x0000002a | int 

 

포인터 변수를 문자열 형태로 보려면 "s", "s8", "su"를 이용한다. 각각 그냥 문자열, UTF-8 문자열, 유니코드 문자열을 의미한다. 

 

char str[] = "hello"; 
wchar_t str2[] = L"world"; 
 
str            | 0x0012ff00 "hello" | char [6] 
str,s          | "hello"            | char [6] 
str2           | 0x0012fee8 "world" | wchar_t [6] 
(void*)str2,su | "world"            | void * 

 

 


"m" 글자를 붙이면 해당 변수의 주소로부터 64 바이트까지를 쭉 볼 수 있다. 

 

str,m   | 0x0012ff00  68 65 6c 6c 6f 00 cc cc cc cc cc cc cc cc cc cc  hello. | char [6] 
str,mb  | 0x0012ff00  68 65 6c 6c 6f 00 cc cc cc cc cc cc cc cc cc cc  hello. | char [6] 
str,mw  | 0x0012ff00  6568 6c6c 006f cccc cccc cccc cccc cccc                 | char [6] 
str,md  | 0x0012ff00  6c6c6568 cccc006f cccccccc cccccccc                     | char [6] 
str2,mu | 0x0012feec  0077 006f 0072 006c 0064 0000 cccc cccc  world.??       | wchar_t [6] 
str,mq  | 0x0012ff00  cccc006f6c6c6568 cccccccccccccccc                       | char [6] 
str,ma  | 0x0012ff00  hello.(..(......T..                                     | char [6] 

 

 


"wc", "wm", "hr"은 각각 윈도우 클래스, 윈도우 메시지, HRESULT를 의미한다. 

 

0x00400000,wc | WS_OVERLAPPEDWINDOW                         | int 
0x10,wm       | WM_CLOSE                                    | int 
0x10,hr       | 0x00000010 The directory cannot be removed. | int 
"!" 연산자를 이용하면 STL Visualization을 끌 수 있다. 

str   | "hello world"                                    | std::basic_string< ... > 
str,! | {_Bx={...} _Mysize=0x0000000b _Myres=0x0000000f} | std::basic_string<...>

728x90
반응형
댓글