//首先,定义异常处理函数
LONG WINAPI ExceptionFilter(LPEXCEPTION_POINTERS lpExceptionInfo) { typedef BOOL(WINAPI * MiniDumpWriteDumpT)( HANDLE, DWORD, HANDLE, MINIDUMP_TYPE, PMINIDUMP_EXCEPTION_INFORMATION, PMINIDUMP_USER_STREAM_INFORMATION, PMINIDUMP_CALLBACK_INFORMATION ); MiniDumpWriteDumpT pfnMiniDumpWriteDump = NULL; HMODULE hDbgHelp = LoadLibrary("DbgHelp.dll"); if (hDbgHelp) { pfnMiniDumpWriteDump = (MiniDumpWriteDumpT)GetProcAddress(hDbgHelp, "MiniDumpWriteDump"); } if (pfnMiniDumpWriteDump) { char szFileName[MAX_PATH] = { 0 }; ::GetModuleFileName(NULL, szFileName, _MAX_PATH); string str = szFileName; str = str.substr(0, str.length() - 4) + ".dmp"; HANDLE hFile = ::CreateFile(str.c_str(), G
程序崩溃时生成DUMP文件
最新推荐文章于 2024-05-31 14:36:38 发布
本文介绍了如何在程序发生异常时,利用Windows API DbgHelp.dll的MiniDumpWriteDump函数生成DUMP文件,以便于后期分析崩溃原因。通过设置未处理异常过滤器,当程序崩溃时调用自定义的异常处理函数ExceptionFilter,该函数负责创建并写入DUMP文件。
摘要由CSDN通过智能技术生成