윈도우즈 디버깅에서의 CONTEXT 정보

CONTEXT 는 processor specific 한 Register 정보를 가지고 있습니다. CONTEXT 정보가 중요하게 여겨질 때라면, Exception이 발생하여 Handler에 의해 처리될 때 입니다. 해당 Context로 이동하여 Exception이 발생한 순간의 상태를 review 할 수 있습니다. windbg에서는 보통, Callstack function 중에 Exception Handler들이 처리하는 EXCEPTION_POINTERS 구조체에 CONTEXT정보를 찾을 수 있으며, .cxr command 를 통해서 해당 Context로 이동할 수 있습니다. 하지만, stack상에 문제가 있어서 정확한 Exception Handler를 찾지 못할 경우라도, x86 machine의 경우, Context 구조체의 첫번째 arg 인 ContextFlags 값이 1003f 값을 갖기 때문에 "s -d <stack limit> <stack base> 1003f" command를 수행하여 해당 thread stack 범위에 존재하는 Context를 확인할 수 있습니다. 참고로 Stack 정보를 !teb 를 통해서 얻을 수 있습니다.

by SehYoon | 2007/12/06 22:45 | Windows debugging | 트랙백 | 덧글(0)
트랙백 주소 : http://byung.egloos.com/tb/3988925
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >