DMP文件的生成和使用
来源:互联网 发布:小米电视软件安装 编辑:程序博客网 时间:2024/05/16 08:11
1、生成dmp的程序
//EXCEPTION_EXECUTE_HANDLER equ 1 表示我已经处理了异常,可以优雅地结束了
//EXCEPTION_CONTINUE_SEARCH equ 0 表示我不处理,其他人来吧,于是windows调用默认的处理程序显示一个错误框,并结束
//EXCEPTION_CONTINUE_EXECUTION equ -1 表示错误已经被修复,请从异常发生处继续执行
#include <dbghelp.h>
#include <windows.h>#include <dbghelp.h>#include <time.h>#pragma comment(lib, "dbghelp.lib")SetUnhandledExceptionFilter(UnhandledExceptionFilter);LONG WINAPI UnhandledExceptionFilterbb(struct _EXCEPTION_POINTERS* ExceptionInfo){time_t timep;struct tm *pCur;time(&timep);pCur=localtime(&timep); char chTime[50]={0};strftime(chTime,50,"%Y-%m-%d %H:%M:%S", pCur);strcat(chTime,".dmp");HANDLE hFile = CreateFile(chTime, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL );if (hFile!=INVALID_HANDLE_VALUE){ MINIDUMP_EXCEPTION_INFORMATION ExInfo; ExInfo.ThreadId = ::GetCurrentThreadId();ExInfo.ExceptionPointers = ExceptionInfo;ExInfo.ClientPointers = NULL;// write the dumpBOOL bOK = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &ExInfo, NULL, NULL );CloseHandle(hFile); } return EXCEPTION_EXECUTE_HANDLER;}
<p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;">2、调试dump文件</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"> 1)用windbg。</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"> 2)用vc,把dmp文件和exe, pdb文件放在同一目录下, 然后用编译器(如vc)打开, 然后开始调试就会中断到刚才中断的地方.</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;">3、以下是网上搜集到的条件,尚未验证是否是必需的,如果不能正确的生成dmp,可尝试以下方法</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"> 1)SetUnhandledExceptionFilter()并不能处理所有的异常,比如CRT异常需要调用_set_invalid_parameter_handler()才行</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"> 1)要设置c运行库异常处理函授。这样当出错后,会引发你的异常处理,你的处理中,可以直接丢掉或重新启动你的exe,或写入log文件。</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"> 2)注意生成的release应用程序需要开启“生成调试信息”选项。</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"> 2)使用VS2008的话,不需要开启“生成调试信息”选项就可以生成的。</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"> 3)编译release版本的时候同时生成map文件,具体可以在网上查找一下关于map文件的使用方法。</p><p style="font-size: 13px; line-height: 1.5; margin: 10px auto; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"> 3)生成可执行文件时在工程属性设置里的“调试”选项里将“生成映射文件”设置为“是”。这主要是用来在出错时通过dump和map文件对错误定位</p>
0 0
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- minidump-DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- DMP文件的生成和使用
- dmp 文件的使用
- windows的dmp文件使用
- oracle数据库的导入dmp文件和导出dmp文件
- DMP文件的生成和使用(转),由于须要取得用户出现问题的信息,所以须要取得demp信息,可以通过本方法获取。
- dmp 文件的导入和导出
- testng报错"java.net.SocketException: Software caused connection abort: socket write error"
- HDU——2112HDU Today(SPFA+简单Hash或map+前向星)
- 《架构师成长之路》连载之NO.1
- hdu 3501(容斥原理)
- NYOJ 722 数独 (DFS)
- DMP文件的生成和使用
- 连续3次面试暑期实习之后的总结(Java工程师/Web后台开发)
- sitemesh实现页面Js及Css简单化(java)
- 深入理解LINUX下动态库链接器/加载器ld-linux.so.2
- 短信验证or语音验证
- linux 系统下常用的命令
- jQuery基本语法
- 第四十讲 项目6 双色球嘿嘿~好吧,其实是三个球的问题
- 10006---根据PV计算带宽及根据PV算并发