1、引入DbgHelp并生成dmp文件
1、引入 DbgHelp
#include<DbgHelp.h>
#pragma comment(lib,"DbgHelp.lib")
2、创建Dump文件
void CreateDumpFile(LPCWSTR lpstrDumpFilePathName, EXCEPTION_POINTERS *pException)
{
HANDLE hDumpFile = CreateFile(lpstrDumpFilePathName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
// Dump信息
MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
dumpInfo.ExceptionPointers = pException;
dumpInfo.ThreadId = GetCurrentThreadId();
dumpInfo.ClientPointers = TRUE;
// 写入Dump文件内容
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
CloseHandle(hDumpFile);
}
// Exception的回调函数
LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
{
CreateDumpFile(L"error.dmp", pException);
std::cout << "程序异常" << std::endl;
return EXCEPTION_EXECUTE_HANDLER;
}

本文详细介绍了如何使用C++中的DbgHelp库来捕获程序异常,并生成DMP文件以供调试。通过实现异常处理函数和调用适当的API,可以在程序崩溃时自动生成DMP文件,帮助开发者定位错误原因。
最低0.47元/天 解锁文章
8万+

被折叠的 条评论
为什么被折叠?



