덤프 파일 분석하기

출처 : http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=7976&page=1

 

초보 분들에게 도움이 되었으면 하고, 제가 사용하는 방법을 정리해 볼까 합니다.

 

우선, 덤프를 확보하는 방법부터 얘기해보겠습니다.

 

윈도우에서 동작하는 어플리케이션이 예외처리가 되지 않은 오류를 일으키게 되면 윈도우는 시스템에 설정되어 있는

 

디버거를 호출하게 됩니다.

HKLM\Software\Microsoft\Windows NT\CurrentVersion\AeDebug

이 경로의 레지스트리를 보게되면, 현재 시스템의 디버거로 어떤 툴이 사용되는지를 알 수 있습니다.

 

일단 덤프가 확보되도록 설정하는 방법을 말씀드리면,

 

콘솔 창(cmd.exe)에서 drwtsn32.exe 를 입력하여 실행해 주시기 바랍니다.

 

그러면 닥터 왓슨 이라는 윈도우 기본 덤프 생성 프로그램이 실행이 됩니다.

 

보시면, 덤프 파일의 생성 위치 등을 설정할 수 있습니다.

 

이어서 콘솔 창에서 drwtsn32.exe -i 을 입력해 …

NUnit 테스트 디버깅하기

1. 테스트 코드의 디버깅이 필요한 부분에 중단점을 설정한다.
2. NUnit을 실행시킨다.
3. VisualStudio.NET 메뉴의 디버그>프로세스를 선택한다.
4. 사용 가능한 프로세스 목록에서 nunit 프로세스를 찾아 선택한 후 [연결] 버튼을 누르면 “프로세스에 연결” 대화상자가 나타난다.
5. CLR 디버거를 선택하고 [확인] 버튼을 누르면, 프로세스 대화상자의 디버깅된 프로세스 목록에 nunit 이 보인다.
6. 프로세스 대화상자의 제일 밑에 있는 ‘디버깅이 중지도리 때’ 옵션을 선택하고 [닫기] 버튼을 누른다.

이제 NUnit 테스트를 실행해 보자. VisualStudio.NET이 중단점에서 실행을 멈출 것이다.

AUTOEXP.dat활용하여STL사용시디버깅조금더쉽게하기

이 후 부터는 VC6 이 “C:\Program Files\Microsoft Visual Studio” 에 설치되었다고 가정합니다. 따라서 MSDEV.exe 파일은 “C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin” 에 위치하게 됩니다.

 

VC6의 MSDEV.exe 파일이 있는 폴더에는 AUTOEXP.dat 란 파일이 존재합니다.

 

AUTOEXP.dat 파일은 툴팁에서나 디버그 Watch 창에서 해당 변수의 내용을 어떻게 표시할 지를 사용자가 결정할 수 있게 해줍니다.

 

간단하게 예를 들어서 MFC의 CPoint 형 변수를 디버그 Watch 창에 추가하면 오른쪽에 결과로 “{x=100 y=200}” 과 같은 형식으로 표시가 됩니다. 또는 디버깅 시 해당 변수위에 마우스 커서를 올려놓고 잠시 기다리면 나오는 툴팁에서도 똑같은 결과가 표시됩니다.

 

AUTOEXP.dat 파일을 열어보면 기본적으로 ” CPoint =x=<x> y=<y> ” 라는 아이템이 있습니다. 즉