转载地址点击打开链接

1、生成dmp的程序

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

//设置异常处理回调函数
SetUnhandledExceptionFilter(UnhandledExceptionFilter);

//异常处理代码
//EXCEPTION_EXECUTE_HANDLER equ 1 表示我已经处理了异常,可以优雅地结束了 
//EXCEPTION_CONTINUE_SEARCH equ 0 表示我不处理,其他人来吧,于是windows调用默认的处理程序显示一个错误框,并结束 
//EXCEPTION_CONTINUE_EXECUTION equ -1 表示错误已经被修复,请从异常发生处继续执行 
LONG UnhandledExceptionFilter(struct _EXCEPTION_POINTERS* ExceptionInfo)
{
    CString   strDumpFile; 
    strDumpFile.Format("%d",CTime::GetCurrentTime().GetTickCount());
    strDumpFile   +=  ".dmp "; 
    HANDLE   hFile   =   CreateFile(strDumpFile,   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   dump
        BOOL   bOK   =   MiniDumpWriteDump(GetCurrentProcess(),   GetCurrentProcessId(),   hFile,   MiniDumpNormal,  &ExInfo,   NULL,   NULL   );
        CloseHandle(hFile); 
    }

theApp.PostThreadMessage(WM_QUIT,0,0);
    return EXCEPTION_EXECUTE_HANDLER;
}

2、调试dump文件

1)用windbg。

2)用vc,把dmp文件和exe, pdb文件放在同一目录下, 然后用编译器(如vc)打开, 然后开始调试就会中断到刚才中断的地方.

3、以下是网上搜集到的条件,尚未验证是否是必需的,如果不能正确的生成dmp,可尝试以下方法

1)SetUnhandledExceptionFilter()并不能处理所有的异常,比如CRT异常需要调用_set_invalid_parameter_handler()才行

1)要设置c运行库异常处理函授。这样当出错后,会引发你的异常处理,你的处理中,可以直接丢掉或重新启动你的exe,或写入log文件。

2)注意生成的release应用程序需要开启“生成调试信息”选项。

2)使用VS2008的话,不需要开启“生成调试信息”选项就可以生成的。

3)编译release版本的时候同时生成map文件,具体可以在网上查找一下关于map文件的使用方法。

3)生成可执行文件时在工程属性设置里的“调试”选项里将“生成映射文件”设置为“是”。这主要是用来在出错时通过dump和map文件对错误定位。

4、其他工具

1)生成dump文件需要Dr.Watson,它是Windows自带的调试工具,只要对它进行了设置,程序出错后就可以在相应目录下找到dump文件。可参见如下资料:http://hi.baidu.com/mryongzhang/blog/item/11a774edf9b513d72e2e2167.html

2)adplus是最有用的工具,http://support.microsoft.com/kb/286350/

minidump-DMP文件的生成和使用的更多相关文章

  1. DMP文件的生成和使用

    1.生成dmp的程序 #include  <dbghelp.h> #pragma comment(lib,  "dbghelp.lib") //设置异常处理回调函数Se ...

  2. Dump文件的生成和使用

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lk142500/article/detai ...

  3. WinDbg分析DMP文件方法完全攻略

    前言:在C++实际开发过程中,开发出来的程序,一般情况下由开发人员进行单元测试,然后移交给测试人员进行测试.在开发人员测试出现的bug,我们可以直接在本地进行调试.如果测试人员测试出崩溃级别的bug, ...

  4. 如何生成转储(dmp)文件--工具篇

    转储文件也就是我们常说的dump文件.可以把转储文件看成软件的某个时刻的一个快照.转储文件一般都是在软件出现问题时手动生成或者程序自动生成.下面我们介绍几种生成转储文件的方法. 1. 任务管理器 任务 ...

  5. Windbg分析DMP文件

    1.提取Dump格式文件 有两种方式: 第一种,程序崩溃时,启动任务管理器,选择崩溃的*.exe进程,右键选择创建转储文件,通过 开始—运行—输入 %temp% --确定--在打开Temp窗口中即可找 ...

  6. Dump文件的生成

    一.Windows系统的任务管理器里抓dump 启动任务管理器,选中某个进程,右键,弹出菜单"创建转储文件" 注意事项: 当你在64位Windows系统上抓32位进程的dmup文件 ...

  7. 使用VS2013分析DMP文件

    当一个发布的.NET应用程序出现app crash,无法通过日志分析异常原因时,就需要通过分析DMP文件了,传统方式是通过WinDbg来分析DMP文件,但是WinDbg用起来不是很方便,其实VS就是一 ...

  8. Oracle----SQL语句积累 (Oracle 导入 dmp文件)

    Oracle----SQL语句积累 (Oracle 导入 dmp文件) Oracle SQL PL  导入dum文件 1.数据库DBA权限: 注意:这个是在cmd命令行中直接输入,不需要进入Oracl ...

  9. 【故障处理】IMP-00010错误 12C的dmp文件导入11G

    [故障处理]IMP-00010错误 12C的dmp文件导入11G 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...

  10. 【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中

    [exp/imp]将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后 ...

随机推荐

  1. JSP DAO(Model)

    示例代码: 1. Users类 package com.po; public class Users { private String username; private String passwor ...

  2. Kubernetes Rook

    Rook Rook 是一个开源的cloud-native storage编排, 提供平台和框架:为各种存储解决方案提供平台.框架和支持,以便与云原生环境本地集成. Rook 将存储软件转变为自我管理. ...

  3. win10系统下载地址

    Win10正式版微软官方原版ISO系统镜像下载: Win10正式版32位简体中文版(含家庭版.专业版) 文件名: cn_windows_10_multiple_editions_x86_dvd_684 ...

  4. FreeBSD 安装过程

    FreeBSD安装步骤: 回车 按默认回车 输入服务器的计算机名 去掉games,加上src安装如下图 Lib32 ports src这三项一定要安装上 回车 选择Manual 进入以后点create ...

  5. mybaties mapping中if

    mapping中 if的简单使用 <insert id="addPassenger" resultMap="EmpResultMap" parameter ...

  6. 算法总结之 构造数组MaxTree

    一个数组的MaxTree定义如下: 数组必须没有重复元素 MaxTree是一颗二叉树,数组的每一个值对应一个二叉树的节点 包括MaxTre树在内且在其中的每一颗子树上,值最大的节点都是树的头 给定一个 ...

  7. 【P2629】好消息,坏消息(前缀和+单调队列优化DP)

    一激动一颓就会忘了总结... 前面的大黄题就不总结了. 这个题我只想说一声艹,一开始的思路就是正确的,然后计算的时候有了一个瑕疵,不过很快也就改过来了.然后却一直连样例都过不了.仔仔细细看了老半天,经 ...

  8. Codeforces Round #386 (Div. 2) C D E G

    一场比较简单的题 比较脑洞 C 如果坐车比较快的话 先走不如等车 所以最后的ans是min(纯走路,纯坐车) 讨论一下坐车时间 D 因为k一定是>=1的 所以当a=b的时候 GBGBGB这样间隔 ...

  9. CDN,内容分发网络。

    CDN,内容分发网络. 就近获取内容,提高用户访问网站响应速度. 广州的用户,访问广州的节点.北京的用户,访问北京的节点. 图片CDN,提高图片访问,方便数据迁移. DNS,域名系统.处理域名和IP地 ...

  10. 使用Putty和Xshell远程登录之密钥认证

    本次实验主要使用目前使用最多的Putty和Xshell工具进行实验 关于SSH密钥认证原理,请参考链接:http://www.cnblogs.com/ImJerryChan/p/6661815.htm ...