WinDbg 디버깅2014. 9. 2. 00:29
반응형

프로세스가 크래시될 때 유저모드 전체 덤프가 생성되도록 설정하는 방법이다.


1. Vista 이상


Vista부터 Windows Error Reporting이 생기면서 자동으로 MS에 덤프를 전송하게 됐는데...

정작 로컬 시스템에는 덤프를 남기지 않는다.


이런 경우 다음 레지스트리 설정을 통해 덤프를 남기도록 설정할 수 있다.


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps

DumpFolder = %LOCALAPPDATA%\CrashDumps (원하는 경로로 변경해도 됨)

DumpType = 2     (2는 전체덤프)



자세한 설명은 다음 링크를 참고한다.

http://msdn.microsoft.com/ko-kr/library/windows/desktop/bb787181(v=vs.85).aspx



2. XP 이하


닥터 왓슨이 덤프를 남기지 못하는 경우가 있기 때문에 ntsd를 이용해 수동으로 설정해서 유저덤프를 얻는 방법도 있다.

크래시 발생시 실행 디버거를 다음과 같이 ntsd로 설정한다.


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

Debugger = ntsd -p %ld -e %ld -c ".dump /ma /u C:\Dumps\UserDump.dmp; q"


64비트 OS라면 32비트 프로세스를 위해 다음도 추가해 준다.


HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug

Debugger = ntsd -p %ld -e %ld -c ".dump /ma /u C:\Dumps\UserDump.dmp; q"


참고할 만한 링크는 다음과 같다.

http://support.citrix.com/article/ctx105888


반응형
Posted by GreeMate