티스토리 뷰

728x90

개발자가 테스트하는 중에 생기는 예외나 오류는 해당 상황이 재현만 된다면 대부분 디버깅 과정을 통해서 어렵지 않게 찾을 수 있는 것이 사실이다. 그런데, 디버깅할 수 없는 환경이나 기타 상황이라면, 특히 해당 문제점이 거의 재현되지 않는다면 개발자 입장에서는 난감한 상황에 빠질 수밖에 없다. 이런 경우에는 비정상 종료 당시의 상황 정보를 담고 있는 코어 덤프가 있으면 문제의 실마리를 찾아갈 수 있다. 리눅스나 유닉스의 경우에는 코어 덤프 파일을 현재 디렉터리나 시스템 폴더에 남기는데, 윈도우의 경우에는 윈도우 오류 보고(WER, Windows Error Reporting) 레지스트리 설정으로 가능하다.

 

 

위의 그림과 같이 regedit를 실행하여 다음과 같은 위치로 이동한다.

 

컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting

 

WER 폴더 아래 LocalDumps 키가 없으면 WER 폴더 아래에 새로 만들기> 키로 LocalDumps 키를 생성한다.

 

 

WER 폴더 아래 LocalDumps 키를 확인했으면 위의 그림과 같이 덤프 폴더(DumpFolder)와 덤프 최대 개수(DumpCount, 개수 초과 시 자동 삭제), 덤프 타입(1:미니덤프, 2:전체덤프)을 지정하면 된다. 

이 상태로 프로그램을 실해하고 혹시 비정상 종료가 발생하면 지정한 폴더에 *. dmp 파일을 생성한다. 만약 비주얼스튜디오 개발 및 디버깅, 테스트를 같은 컴퓨터에서 하고 있는 상황이라면 더 편리하겠지만 버전이 다른 경우나 다른 컴퓨터에서 발생한 경우라면 빌드 당시에 생성되는 *. exe와 함께 *. pdb 파일도 확보해야 한다.

 

*. dmp 파일이 있다면 디버거(Windbg)가 별도로 없어도 비주얼스튜디오 내에서 덤프 파일을 확인할 수 있다. 파일> 열기> 파일로 원하는 덤프 파일을 오픈하면 덤프 파일 요약을 확인할 수 있고 우측의 디버그 버튼을 누르면 어디에서 비정상 종료가 되었는지 찾아갈 수 있다. 필자의 프로그램은 닷넷 프레임워크 4.8 기준으로 빌드한 것이라 "관리 전용으로 디버그"를 클릭했다.

 

프로그램 종료 시 발생한 예외인데 모르고 넘어갈 부분을 글 쓰다가 찾았다. ㅠㅠ

728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함