#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <dbghelp.h>
using namespace std;
// 腾讯LiteAv TRTC 的 MFCDemo中的crashdump文件可以参考下,挺好的
#pragma comment(lib, "Dbghelp.lib") //用于crash dump
LONG CALLBACK CrashHandler(EXCEPTION_POINTERS* pException)
{
MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
dumpInfo.ExceptionPointers = pException;
dumpInfo.ThreadId = GetCurrentThreadId();
dumpInfo.ClientPointers = TRUE;
HANDLE hDumpFile = CreateFile(_T("crash.dmp"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
HANDLE hMiniDumpFile = CreateFile(_T("crash.mini.dmp"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpWithFullMemory, &dumpInfo, NULL, NULL);
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hMiniDumpFile, (MINIDUMP_TYPE)0x1964, &dumpInfo, NULL, NULL);
CloseHandle(hDumpFile);
CloseHandle(hMiniDumpFile);
return EXCEPTION_EXECUTE_HANDLER;
}
void main()
{
SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)CrashHandler);
}
评论0