程序自动生成dump文件
来源:互联网 发布:ntfs for mac paragon 编辑:程序博客网 时间:2024/05/18 01:42
作用
可以再程序崩溃后保留崩溃现场,方便事后查找程序的崩溃原因。前提是奔溃程序所对应的代码和PDB文件都是匹配的(发布程序的时候,保留源代码和PDB文件)。
代码示例
// pro_dump.h// 包含本文件是用来处理程序崩溃时自动生成dump文件的// 生成的dump文件在程序的工作目录下// 文件名格式是:年月日_时分秒.dmp// 使用dmp示例:可直接把该dmp文件、程序和程序所对应的PDB文件// 放在同一个目录下,然后双击打开dmp文件即可查看崩溃的现场#pragma once#include <Windows.h>#include <tchar.h>#include <DbgHelp.h>#pragma comment(lib, "dbghelp.lib")#ifdef UNICODE#define TSprintfwsprintf#else#define TSprintfsprintf#endif// 启动自动生成dump文件的话,只需要在main函数开始处// 调用该函数(EnableAutoDump)即可void EnableAutoDump();// 其它函数LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException);void CreateDumpFile(LPCSTR lpstrDumpFilePathName, EXCEPTION_POINTERS *pException);LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException) { TCHAR szDumpDir[MAX_PATH] = {0};TCHAR szDumpFile[MAX_PATH] = {0};TCHAR szMsg[MAX_PATH] = {0};SYSTEMTIMEstTime = {0};// 构建dump文件路径GetLocalTime(&stTime);::GetCurrentDirectory(MAX_PATH, szDumpDir);TSprintf(szDumpFile, _T("%s\\%04d%02d%02d_%02d%02d%02d.dmp"), szDumpDir, stTime.wYear, stTime.wMonth, stTime.wDay,stTime.wHour, stTime.wMinute, stTime.wSecond);// 创建dump文件CreateDumpFile(szDumpFile, pException);// 这里弹出一个错误对话框并退出程序TSprintf(szMsg, _T("I'm so sorry, but the program crashed.\r\ndump file : %s"), szDumpFile);FatalAppExit(-1, szMsg); return EXCEPTION_EXECUTE_HANDLER; } void EnableAutoDump(){SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);}// 创建Dump文件void CreateDumpFile(LPCSTR lpstrDumpFilePathName, EXCEPTION_POINTERS *pException){// 创建Dump文件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);}
0 0
- 程序自动生成Dump文件
- 程序自动生成Dump文件
- 程序自动生成Dump文件
- 程序自动生成Dump文件
- 程序自动生成Dump文件
- 程序自动生成dump文件
- MFC程序自动生成dump Windbg文件
- 程序出错时自动生成dump文件
- 如何自动生成Dump文件
- 让程序生成dump文件
- 程序崩溃生成dump符号文件
- windows程序崩溃生成dump文件
- windows程序崩溃生成dump文件
- 程序崩溃时生成Dump文件
- 程序崩溃时生成DUMP文件
- qt中程序崩溃生成dump文件
- windows程序崩溃生成dump文件
- Windows程序开发之Dump文件生成
- NJ 学习点滴积累
- 20个最受欢迎的Linux命令
- VisionMobile:跨平台的平台:Facebook的开发者战略
- cuda error:too many resources required for launch
- java Web.xml中servlet配置方法
- 程序自动生成dump文件
- 迷茫、彷徨
- 北大ACM题分类
- oracle中的一些特殊字符
- Android 4.0 external下功能库说明
- linux svn配置
- 为什么构造函数不能为虚函数
- CGImage载入的图片,查看bitmap详细信息的一段好用代码
- C#中ArrayList 与 string、string[]数组 的转换(转)