Dump 파일 떨구기, 확인하기
이번 프로젝트에 무료 라이브러리를 하나 추가했는데, 이 녀석이 소스는 공개를 안하고 있는 녀석이었습니다. 현업에서 검증도 안되고 소스를 깔 수도 없는 라이브러리를 사용한 저에게 원죄가 있지만 이 녀석이 워낙에 타의 추종을 불허하는 강력한 녀석인지라 마약인지 알고서도 손을 데고야 말았습니다.
이제까지 잘 쓰고 있었는데, 최근 제품이 출시되면서 하드한 상황에서 프로그램이 돌다 보니 이 라이브러리 안에서 프로그램이 뻗는다는 것을 알게 되었습죠. 당황스러웠지만 별거 아니라고 생각하고 원작자와 몇 차례 메일을 주고 받았습니다. 하지만 생각처럼 쉽게 상황이 해결되지 않더군요.
아는 분들은 아시겠지만 이런 상황을 포함한 여러 상황에서 디버깅을 할 수 있는 방법이 있습니다. 마이크로소프트의 오류보고가 그것이죠. minidump 라고 해서 IE 5.0 이상 시절부터 추가되었다고 하더군요. 아주 심플하게 설명 드리면 디버그 모드로 실행하고 브레이크 포인트 하나 걸고 세운 다음에 메뉴 > 디버그 에 save dump 를 선택하시고 잘 저장하시면 됩니다. 이제 솔루션을 닫고 메뉴 > Open > solution 에서 저장한 .dmp(dump 파일) 을 불러주세요. F5 를 눌러서 실행해 보시면 좀 전에 멈췄던 상황을 보여줄 것입니다.
이때 좀 더 상황을 디테일하게 보고 싶은 라이브러리가 있는 경우 라이브러리와 디버그 정보(DBG 혹은 PDB 파일) 을 엮어 주시면 안에를 까볼 수 있습니다.
저의 상황에서 제가 덤프를 라이브러리 원작자 분께 넘겨 드리면 그 분은 본인은 소스가 있을 테니까 본인의 pdb 파일을 엮어서 안에 상황을 적나라하게 확인해 볼 수가 있겠죠.
아래는 제가 번역한 문서인데, 번역이 좋지 않으니 그냥 원문을 보시는 것이; 좋을 것 같습니다. 내용은 별거 아닌데 상황에 따라서 꽤나 유용하겠다 싶어 올려봅니다.
http://aronze.egloos.com/1432450#1432450_1
좋은하루 되세요.
'Tip & Tech' 카테고리의 다른 글
[펌] Google C++ Style Guide (구글 C++ 엔지니어들의 코딩 스타일) (0) | 2011.08.22 |
---|---|
메모리릭 찾기 (0) | 2011.08.20 |
Notepad++배우기 (0) | 2011.07.30 |
환경변수(시스템변수) 자동 등록 (0) | 2011.07.18 |
Tortoise SVN 속도향상 및 자동 업데이트 (0) | 2011.06.22 |