在 C++ 程序开发中,尤其是在 Windows 平台上,程序发生异常崩溃时生成 Dump 文件(.dmp) 是一种非常重要的调试手段。Dump 文件记录了程序崩溃时的内存状态、线程信息、堆栈调用等数据,便于后续通过调试器(如 Visual Studio 或 WinDbg)分析崩溃原因。
下面详细介绍如何在 C++ 程序中捕获异常并生成 Dump 文件:
Windows 下生成 Dump 文件的基本方法
使用 Windows API MiniDumpWriteDump 函数可以生成 MiniDump 文件。
所需头文件和库:
#include <windows.h>
#include <dbghelp.h> // 包含 MiniDumpWriteDump 函数
#pragma comment(lib, "dbghelp.lib")
示例代码:注册全局异常处理并生成 dump 文件
#include <windows.h>
#include <dbghelp.h>
#include <tchar.h>
#include <strsafe.h>
#pragma comment(lib, "dbghelp.lib")
// 生成 Dump 文件的函数
void CreateMiniDump(EXCEPTION_POINTERS* pep)
{
// 创建 dump 文件
HANDLE hFile = CreateFile(_T("crash.dmp"), GENERIC_READ | GENERIC_WRITE,
0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile


3891

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



