크래시 리포트란 Unhandled Exception을 걍 Crash라 부르고 기록을 하는걸 말한다.
머 살짝 설명하면 걍 프로그램에 0으로 나눈다거나 널포인트를 참고할때 M$로 먼가를 보낼거냐고 물으면서 윈도의 바탕화면으로 튕겨나가는 상황이다.
머 크래시 리포트에 관련된 내용은
http://www.codeproject.com
를 뒤지면 여러가지를 찾을 수 있다.
대채로 윈도우에선 SEH(Structed Exception Handler)라는걸 사용해서 먼가를 남긴다.
미니덤프를 떠서 메일로 보내게 할수도 있지만 메일 클라이언트가 필요하므로 사용자가 날려줄리 없고. 먼가 자동으로 보내기엔 용량이 살짝 부담된다.
게다가 사실 실제로 쓰는건 콜스택 정보만 있으면 되기 땜시 덤프까지 남길 필요는 그다지 없다.
사용하기 위해선 dbghelp.dll 이라는게 필요하므로 실행파일과 함께 배포하쟈
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
에서 windbg를 다운받으면 안에 들가있다
그리고 프로젝트의 링크에 Generate Debug Info를 체크해서 pdb파일이 생기도록 해야한다.
그래서 크래시가 나서 죽었을때 그 실행파일을 만들었던 exe와 pdb파일, 그리고 소스 파일이 있어야 먼가를 찾아볼 수 있다.
exe와 pdb만 있어도 어느 클래스의 어느 함수 몇번째 라인, 어느 파일의 몇번째 라인에서 죽었는 지 알 수 있지만..
현재의 소스가 그때의 소스랑 상이하다면 소용이 없다-ㅅ-;
pdb를 유저에게 배포하게 되면 리포팅시에 바로 실행정보를 남기면 되므로 pdb를 따로 보관하지 않아도 되는 장점이 있으나, pdb를 배포한다는것은 내 프로그램을 해킹해주세요~ 라는 것과 마찬가지이니 그런짓은 하지 말도록 하쟈-ㅅ-;
대신 주소만 있으면 exe와 pdb파일을 열어서 주소를 넣으면 실행정보를 볼 수 있다.
멀로 보는가..하면
http://www.kgda.or.kr/cgi/technote/read.cgi?board=data_program&x_number=1069767908&r_search=kgdc&nnew=1
에서 받아서 본다-_-
이론적으로 궁금한 점이 있으면 나한테 묻지 말고 Debuging Application이라는 책을 사서 보도록 하쟈
첨부 파일로 코드 프로젝트에서 받아서 필요한 부분만 사부닥 뽑아서 쓰는 코드를 첨부해놨다.
pdb를 같이 배포해도 되는 경우는
http://www.codeproject.com/tools/leakfinder.asp
에서 받아서 쓰도록 하쟈
'자료 > 내자료' 카테고리의 다른 글
분절 모델의 접합부위 Normal값 수정 (0) | 2006.02.23 |
---|---|
enum string (0) | 2005.07.08 |
텍스쳐 포맷 변경해서 저장하기 (0) | 2005.05.16 |
Alkanoid프로젝트 완료 (0) | 2004.12.23 |
DX에서 쓰는 텍스쳐 썸네일 만들기 (0) | 2004.10.02 |