개요.. |
닥터왓슨 (Dr. Watson, Drwtsn32.exe) 은 디버그(Debug)와 릴리즈(Release)버전에서 프로그램 오류발생 할 경우 오류 내용을 해독할 수 있는 정보를 제공해주는 특히 서버프로그램에서 아주 유용하게 사용됩니다.
"drwtsn32.exe" 실행하여 도움말을 클릭하면 자세한 한글 설명서를 볼 수 있습니다.
윈도우 디버그 심볼(Debug Symbol) 다운로드 받는 방법
따라해보기 |
내가 만든 프로그램의 심볼을 닥터왓슨(Dr. Watson)에 등록시켜보기
1. 내 컴퓨터 등록정보->고급->환경변수 에 _NT_SYMBOL_PATH 등록합니다.
2. 변수값에 %systemroot%\Symbol;D:\Symbol; 추가합니다.
3. 닥터왓슨을 다음과 같이 실행시켜 기본 디버거로 등록합니다.
drwtsn32.exe -i
4. 릴리즈버전의 링크옵션에 "Generate debug info"를 체크합니다.
5. 컴파일 하여 생성된 *.pdb 파일을 심볼 폴더로 복사합니다.
6. 릴리즈버전을 실행시켜 오류 발생 시험합니다.
오류가 발생 후 오류 함수와 내용이 무엇인지 알아보기
drwtsn32.log 파일 일부분
응용 프로그램 예외 발생: 응용 프로그램: (pid=1224) 날짜: 2004-05-21 @ 23:30:20.968 예외 번호: c0000005 (액세스 위반)
함수: fnc_1 00401005 b9e8030000 mov ecx,0x3e8 0040100a 33ff xor edi,edi 오류 -> 0040100c f3ab rep stosd es:00000000=???????? 0040100e 5f pop edi
*----> 스택 역 추적 <----* FramePtr ReturnAd Param#1 Param#2 Param#3 Param#4 Function Name 0012FF74 0040101A 000003E8 00401025 004010E4 00000001 !fnc_1 (FPO: [1,0,1]) 0012FF7C 00401025 004010E4 00000001 00340C20 00340C58 !fnc_2 (FPO: [0,0,0]) 0012FF80 004010E4 00000001 00340C20 00340C58 00000000 !main (FPO: [2,0,0]) 0012FFC0 77E61AF6 00000000 00000000 7FFDF000 C0000005 !mainCRTStartup 0012FFF0 00000000 00401030 00000000 000000C8 00000100 kernel32!OpenEventA |
Visual C++ 를 기본 디버거로 다시 등록하는 레지스트리 |
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Auto"="0"
"Debugger"="\"E:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin\\msdev.exe\" -p %ld -e %ld"
"UserDebuggerHotKey"=dword:00000000
댓글 없음:
댓글 쓰기