C++ 开发客户端时,如果需要分析程序运行时崩溃的问题,可以在代码中添加生成dump的功能,这里介绍用VS开发时如何生成dump文件,以及dump文件的分析方法。
VS开发时,debug模式的“优化功能”是禁用的,release时是启用了优化,此时是无法生成dump文件的,需要打开“优化禁用”选项,如下图:
生成dump的代码:
/*
dump文件生成
*/
#include "Windows.h"
#include "DbgHelp.h"
int GenerateMiniDump(PEXCEPTION_POINTERS pExceptionPointers)
{
// 定义函数指针
typedef BOOL(WINAPI* MiniDumpWriteDumpT)(
HANDLE,
DWORD,
HANDLE,
MINIDUMP_TYPE,
PMINIDUMP_EXCEPTION_INFORMATION,
PMINIDUMP_USER_STREAM_I