WinDbg 디버깅2007. 9. 23. 02:11
반응형

Jeff 님의 예제를 그대로 들고와서 손을 좀 봤습니다.
그렇게라도 시작하니 일단 감은 좀 잡겠더라구요.

메모리 4GB 를 장착한 시스템에서 덤프를 받았는데 덤프상에서 물리 메모리 2GB 위쪽의 데이터는 덤프파일에 포함되지 않는 것 같아서 이것을 검증해 보고 싶었습니다. 물리 메모리 2GB 위쪽 전체를 뒤지는 방법으로... -_-;;; 물론 노가다는 스크립트가 합니다. ^^

스크립트 testmem.txt 는 다음과 같습니다.
물리주소 80000000 부터 ffffffff 까지 4000 씩 더해 가면서 살펴보는 스크립트입니다.

$$ WinDbg script to get data above 2GB of physical memory in complete memory dump
r $t0 = 0
.for (r $t0 = 80000000; (@$t0 < ffffffff ); r $t0 = @$t0 + 4000)
{
    dc /p @$t0
}

출력은 다음과 같습니다.

3: kd> $$><myscript\testmem.txt
Last set context:
Last set context:
80000000  ???????? ???????? ???????? ????????  ????????????????
Last set context:
80010000  ???????? ???????? ???????? ????????  ????????????????
...

8ffb0000  ???????? ???????? ???????? ????????  ????????????????
Last set context:
8ffc0000  ???????? ???????? ???????? ????????  ????????????????
Last set context:
...

fffe0000  ???????? ???????? ???????? ????????  ????????????????
Last set context:
ffff0000  ???????? ???????? ???????? ????????  ????????????????
Last set context:

살펴본 메모리들이 전혀 존재하지 않음을 간단하게 확인할 수 있었답니다.

http://www.driveronline.org/bbs/view.asp?tb=tipbbs&GotoPage=1&s_bulu=&s_key=&no=87

반응형
Posted by GreeMate