블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

.dmp 파일 남기기

Tip & Tech / 2011. 9. 11. 21:11

SetUnhandledExceptionFilter 를 사용하자.

#include <dbghelp.h>

#pragma comment(lib, "dbghelp.h")

함수원형

LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter (

__in LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter

);

사용법

1. ExceptionHandler implementation

LONG CALLBACK FunctionName (_EXCEPTION_POINTERS *pExceptionInfo)

{

pExceptionInfo->ExceptionRecord->ExceptionCode; // ExceptionCode

HANDLE hFile = CreateFile(DumpFileName);

MINIDUMP_EXCEPTION_INFORMATION eInfo;

eInfo.ThreadId = GetCurrentThreadId();

eInfo.ExceptionPointers = pExceptionInfo;

eInfo.ClientPointers = FALSE;

MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal,

pExceptionInfo ? &eInfo : NULL, NULL, NULL);

return EXCEPTION_EXECUTE_HANDLER;

}

2. Main 함수에서 1에서 구현한 ExceptionHandler 등록

int main(void)

{

....

SetUnhandledExceptionFilter(UnhandledExceptionHandler);

....

}

[출처] .dmp 파일 남기기|작성자 미락꿀

반응형
Posted by blueasa
, |