You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
764 B
C++

#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <Dbghelp.h>
#pragma comment(lib,"DbgHelp")
long __stdcall CrashInfocallback(_EXCEPTION_POINTERS *pexcp)
{
//创建 Dump 文件
HANDLE hDumpFile = ::CreateFile(
"dump.DMP",
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hDumpFile != INVALID_HANDLE_VALUE)
{
//Dump信息
MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
dumpInfo.ExceptionPointers = pexcp;
dumpInfo.ThreadId = GetCurrentThreadId();
dumpInfo.ClientPointers = TRUE;
//写入Dump文件内容
::MiniDumpWriteDump(
GetCurrentProcess(),
GetCurrentProcessId(),
hDumpFile,
MiniDumpNormal,
&dumpInfo,
NULL,
NULL
);
::CloseHandle(hDumpFile);
}
return 0;
}