一个产生dump文件类
来源:互联网 发布:淘宝不能取消退款申请 编辑:程序博客网 时间:2024/05/18 20:06
#include <DbgHelp.h>#pragma comment(lib, "dbghelp.lib")class CExceptionHandler{public:static CString GetDumpFilename(){CString filename;TCHAR buffer[MAX_PATH];GetModuleFileName(NULL,buffer,MAX_PATH);filename = buffer;int index = filename.ReverseFind(_T('.'));filename=filename.Left(index);filename+=_T(".dmp");return filename;}static LONG WINAPI SelfUnhandledExceptionFilter(__in struct _EXCEPTION_POINTERS *ExceptionInfo){USES_CONVERSION;MINIDUMP_EXCEPTION_INFORMATION ExceptionParam;ExceptionParam.ThreadId=GetCurrentThreadId();ExceptionParam.ExceptionPointers=ExceptionInfo;ExceptionParam.ClientPointers=TRUE;MINIDUMP_USER_STREAM UserStreams[2];WCHAR strBulid[MAX_PATH];StringCchPrintf(strBulid, MAX_PATH, L"Build: %s %s", A2W(__DATE__), A2W(__TIME__));UserStreams[0].Type=CommentStreamW;UserStreams[0].Buffer=strBulid;UserStreams[0].BufferSize=MAX_PATH;HMODULE hModule;GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,(LPCTSTR)ExceptionInfo->ExceptionRecord->ExceptionAddress,&hModule);WCHAR strModuleName[MAX_PATH];GetModuleFileNameW(hModule,strModuleName,MAX_PATH);WCHAR szError[MAX_PATH*2];StringCchPrintf(szError,MAX_PATH*2,L"Module=%s ,Code=%x ,Flag=%x ,Address=%p",strModuleName,ExceptionInfo->ExceptionRecord->ExceptionCode,ExceptionInfo->ExceptionRecord->ExceptionFlags,ExceptionInfo->ExceptionRecord->ExceptionAddress);UserStreams[1].Type=CommentStreamW;UserStreams[1].Buffer=szError;UserStreams[1].BufferSize=MAX_PATH*2;MINIDUMP_USER_STREAM_INFORMATION UserStreamInfo;UserStreamInfo.UserStreamArray=UserStreams;UserStreamInfo.UserStreamCount=2;CString filename = GetDumpFilename();HANDLE hFile = CreateFile(filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);::MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpWithFullMemory,&ExceptionParam,&UserStreamInfo,NULL);return EXCEPTION_EXECUTE_HANDLER;}static void Setup(){::SetUnhandledExceptionFilter(SelfUnhandledExceptionFilter);}};
0 0
- 一个产生dump文件类
- DLL 文件 产生dump
- DLL 文件产生dump
- 嵌入式 产生core dump文件
- dump文件产生和定位
- 如何产生core dump文件
- VS2010 调试 dump 文件产生
- dump文件调试技巧(产生Dump文件)
- 如何在程序异常或者崩溃时产生一个dump文件
- Qt程序捕捉异常,产生dump文件
- 一个dump文件捕获生成
- ubuntu下让崩溃的程序产生core dump文件
- “Runtime Error”不产生dump文件的解决办法
- 截取 SIGSEGV 将不会产生 core dump 文件
- 如果使Tomcat产生core和heap dump文件
- “Runtime Error”不产生dump文件的解决办法
- “Runtime Error”不产生dump文件的解决办法
- Linux 下如何产生core文件(core dump设置)
- 《Apache MINA 2.0 用户指南》第十章:执行者过滤器
- HTML5重要标记
- u-boot2013.01.01 for s5pv210: u-boot启动流程
- 黑马程序员_银行管理系统(项目分析)
- deep learning(深度学习)介绍
- 一个产生dump文件类
- 使用Flurry来统计和分析用户行为
- Java 字符串分割三种方法
- [Latex排版]之visio图转成eps的方法
- 将(123)数字转换成大写数字(壹,贰,弎)
- VC下多字节与宽字节之间的相互转换
- linux网络协议栈(五)网络层 (5)策略路由
- 2014年系列技术讲座之云计算基础设施的构建方法和关键技术
- zigbee组网过程概述