vc/vs开发的应用程序添加dump崩溃日志

来源:互联网 发布:韩顺平apache不处理php 编辑:程序博客网 时间:2024/06/07 06:34

vc/vs开发的应用程序出现崩溃的时候,由于没有任何记录,导致开发人员很难追踪,但是添加dump文件后,就可以免除这些烦恼

1.添加方法

(1)添加头文件

#include <imagehlp.h>#pragma comment(lib, "DbgHelp.lib")

(2)在InitInstance()函数中添加:

//抓捕异常文件::SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ExceptionCrashHandler);  //cash代码

其中ExceptionCrashHandler是自自己添加的回调函数,代码如下:

//抓捕异常信息LONG ExceptionCrashHandler(EXCEPTION_POINTERS *pException)  {     // 创建Dump文件HANDLE hDumpFile = CreateFileW(L"Exception.dmp", 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);return EXCEPTION_EXECUTE_HANDLER;  }


崩溃时会在exe所在目录生成Exception.dmp文件


2.调试方法
调试时需要的文件包括:exe文件,dump文件,还有编译生成对应exe的pdb文件(这就需要提前保存好对应版本的pdb文件,否则提示pdb文件不匹配),保证它们在同一目录下,用vs2010打开dump文件(安装了vs2010的双击dump即可自动打开),按下图操作即可



对于dll等,进行同样操作即可



原创粉丝点击