DLL 文件 产生dump
来源:互联网 发布:浙江大学软件学院 878 编辑:程序博客网 时间:2024/05/16 10:21
在程序执行过程中不免会遇到崩溃问题:
创建except.h
#ifndef _except_inc__#define _except_inc__#pragma once#include <DbgHelp.h>#include <Shlwapi.h>#pragma comment(lib, "dbghelp.lib")#pragma comment(lib, "shlwapi.lib")#ifndef CRASH_DUMP_FILE#define CRASH_DUMP_FILE _T("Crash.dmp")#endifstatic void DumpMiniDump(HANDLE hFile, PEXCEPTION_POINTERS excpInfo){if (excpInfo == NULL) {__try {RaiseException(EXCEPTION_BREAKPOINT, 0, 0, NULL);} __except(DumpMiniDump(hFile, GetExceptionInformation()),EXCEPTION_CONTINUE_EXECUTION) {}} else{MINIDUMP_EXCEPTION_INFORMATION eInfo;eInfo.ThreadId = GetCurrentThreadId();eInfo.ExceptionPointers = excpInfo;eInfo.ClientPointers = FALSE;MiniDumpWriteDump(GetCurrentProcess(),GetCurrentProcessId(),hFile,MiniDumpWithFullMemory,excpInfo ? &eInfo : NULL,NULL,NULL);}}static LONG WINAPI Local_UnhandledExceptionFilter(PEXCEPTION_POINTERS pExcept){TCHAR szModuleName[MAX_PATH] = {0};GetModuleFileName(NULL, szModuleName, MAX_PATH);PathRemoveFileSpec(szModuleName);PathAddBackslash(szModuleName);lstrcat(szModuleName, _T("Dump\\"));CreateDirectory(szModuleName, NULL);lstrcat(szModuleName, CRASH_DUMP_FILE);HANDLE hFile = CreateFile(szModuleName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH,NULL);if (hFile != INVALID_HANDLE_VALUE){DumpMiniDump(hFile, pExcept);CloseHandle(hFile);}return 0;}#endif
然后再dllmain.cpp的主函数中添加SetUnhandledExceptionFilter(::Local_UnhandledExceptionFilter);即可;
// dllmain.cpp : 定义 DLL 应用程序的入口点。#include "stdafx.h"#define CRASH_DUMP_FILE _T("DUMP.dmp")#include "..\..\include\except.h"BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){SetUnhandledExceptionFilter(::Local_UnhandledExceptionFilter);switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;}
0 0
- DLL 文件 产生dump
- DLL 文件产生dump
- 嵌入式 产生core dump文件
- 一个产生dump文件类
- dump文件产生和定位
- 如何产生core dump文件
- VS2010 调试 dump 文件产生
- dump文件调试技巧(产生Dump文件)
- Qt程序捕捉异常,产生dump文件
- ubuntu下让崩溃的程序产生core dump文件
- “Runtime Error”不产生dump文件的解决办法
- 截取 SIGSEGV 将不会产生 core dump 文件
- 如果使Tomcat产生core和heap dump文件
- “Runtime Error”不产生dump文件的解决办法
- “Runtime Error”不产生dump文件的解决办法
- Linux 下如何产生core文件(core dump设置)
- 如果使Tomcat产生core和heap dump文件
- VC调用MATLAB 产生的dll文件
- An App ID with identifier is not available.Please enter a different string. 或者这样的,fail to code sign
- 装饰模式
- IO流知识点
- 常规功能和模块自定义系统 (cfcmms)—027开发日志(创建ManyToMany的column2)
- 树链剖分(二)
- DLL 文件 产生dump
- LinuxShell算术运算
- 数值<1>__笔记(7)
- 20年没堵上股权漏洞,万科沦落到靠安邦搭救,王石也是心大
- SpringMVC+Mybatis框架整合源码 项目 下载 rest websocket html5
- 如何用GAT抓取log
- iOS--分段控件UISegmentedControl
- svn常用操作
- 对话框DiaLog