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

덤프분석보다는 live debugging 중에 종종 사용하는 명령어들을 설명합니다.

.reboot (Reboot Target Computer)

커널디버깅을 하다가 시스템을 재부팅하고 싶을 때 사용합니다.
.reboot 명령어만 입력하면 아래와 같이 바로 재부팅 됩니다.

kd> .reboot
Shutdown occurred...unloading all symbol tables.
Waiting to reconnect...


.crash (Force System Crash)

커널디버깅을 하다가 현재 상태를 덤프파일로 남기고 싶을 때 사용합니다.
.crash 명령어만 입력하면 아래와 같이 덤프를 만들고 바로 재부팅 됩니다.

kd> .crash
Shutdown occurred...unloading all symbol tables.
Waiting to reconnect...

만들어지는 덤프파일은 시스템의 설정에 따라갑니다. (미니덤프 or 커널덤프 or 전체덤프)
그리고 생성되는 덤프파일의 BugCheck 코드는 BugCheck 0xE2(MANUALLY_INITIATED_CRASH)입니다.


.dump (Create Dump File)

커널모드에서는 시스템을 죽이지 않고 덤프파일을 생성하고 싶을 때 사용합니다.
유저모드에서는 프로세스를 죽이지 않고 덤프파일을 생성하고 싶을 때 사용합니다.

커널모드나 유저모드나 /f 옵션을 주면 전체덤프를 생성합니다.
세부적인 다양한 옵션이 있지만 저 같은 경우 무조건 다 들어있는 /f 만 사용합니다.
나머지는 모릅니다. ^^

다음은 커널모드에서 실행한 예입니다.

kd> .dump /f c:\temp\nocrash.dmp
Creating a full kernel dump over the COM port is a VERY VERY slow operation.
This command may take many HOURS to complete.  Ctrl-C if you want to terminate the command.
Creating c:\temp\nocrash.dmp - Full kernel dump
Percent written 0
Percent written 1
Percent written 2
Percent written 3
...

Serial 로 연결했더니 너무 느려서 중간에 끊었습니다. -_-;;;
1394 로 연결하면 시간이 많이 걸리지 않습니다.

유저모드에서 전체덤프를 생성할 때는 /f 옵션보다 /ma 가 조금 더 많은 정보가 있다고 권장하네요.

0:000> .dump /ma c:\temp\ie.dmp
Creating c:\temp\ie.dmp - mini user dump
Dump successfully written

mini dump 라고 나오지만 full dump 보다 크기도 크고 정보도 좀 더 들어간다고 합니다.

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

반응형
Posted by GreeMate