原贴地址:https://blog.csdn.net/wangkui1331/article/details/78029940

vc/vs开发的应用程序出现崩溃的时候,由于没有任何记录,导致开发人员很难追踪,但是添加dump文件后,就可以免除这些烦恼

1.添加方法

(1)添加头文件

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

(2)在InitInstance()函数中添加:

//抓捕异常文件
::SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ExceptionCrashHandler);  //cash代码

其中ExceptionCrashHandler是自自己添加的回调函数,代码如下:

//抓捕异常信息
LONG ExceptionCrashHandler(EXCEPTION_POINTERS *pException)
{     // 创建Dump文件HANDLE hDumpFile = CreateFileW(L"Exception.dmp", 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);return EXCEPTION_EXECUTE_HANDLER;
}

崩溃时会在exe所在目录生成Exception.dmp文件

2.调试方法
调试时需要的文件包括:exe文件,dump文件,还有编译生成对应exe的pdb文件(这就需要提前保存好对应版本的pdb文件,否则提示pdb文件不匹配),保证它们在同一目录下,用vs2010打开dump文件(安装了vs2010的双击dump即可自动打开),按下图操作即可

转载于:https://www.cnblogs.com/wainiwann/p/9969280.html

vc/vs开发的应用程序添加dump崩溃日志转相关推荐

  1. taro开发微信小程序-添加开发者预览,上传测试版本(十四)

    taro开发微信小程序,上传测试版本,如果需要访问网络需要打开调试模式,如果配置了https协议的服务,提示对应的服务器证书无效,那么必须正确配置ssl证书,可以在阿里云或者腾讯云申请. 添加开发者预 ...

  2. 【Android 应用开发】使用蒲公英 SDK 收集崩溃日志信息 ( 导入依赖 | 申请 Key | 集成代码 | 清单文件配置 | 手动上传日志 | 手动检查更新 )

    文章目录 一.导入依赖 二.申请 API Key 和 FrontJS Token 三.Application 集成 PgyerSDKManager 代码 四.AndroidManifest.xml 清 ...

  3. ios开发如何给程序添加icon图标

    第一步:将icon图标添加到工程中. 第二步:打开工程的supporting files文件夹,找到XXXX-info.plist文件,打开进去找icon files(若没有自己建立一个)下找到ico ...

  4. VC+VB开发CAD重生记:CADEditorX 15.X Crack

    CADEditorX是一个 ActiveX 组件,用于在任何支持 ActiveX 和 COM 技术的开发环境(例如 C#.Visual C++.Delphi.VB.JavaScript 等)中向网页或 ...

  5. VC HID开发笔记

    1.头文件包含,库文件链接 在VC中开发HID应用程序时,需要包含setupapi.h和hidsdi.h,包含方式必须为extern "C",如下所示: extern " ...

  6. taro开发微信小程序-播放轨迹(十一)

    taro集成了地图后如何实现轨迹播放,暂停,停止呢?本身地图并不具备轨迹播放的能力,但是基于地图api可以实现轨迹播放的效果 思路如下: 1.获取所有的轨迹坐标点-最好是数组格式的json 2.定义一 ...

  7. 在VC中使用ADO开发数据库应用程序

    在VC中使用ADO开发数据库应用程序 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 ...

  8. 【实习之T100开发】T100 单档程序开发(2)添加功能

    T100单档程序 一.添加 性别[下拉框].入职日期 1.r.t 数据表增加字段 2.设计器更新基础数据.重新产生基础数据 3.设计器修改界面并上传 4.重新下载程序代码,修改 azzi600系统分类 ...

  9. 从0开始学习开发微信小程序(熟悉微信开发者工具页面,简单修改、添加一些内容)

    目录 从0开始学习开发微信小程序 准备工作 下载安装微信开发者工具.注册小程序账号 创建小程序 实际操作学习基本功能 写一个名为new的页面. 修改主页的"Hello World" ...

最新文章

  1. python接口自动化(二十四)--unittest断言——中(详解)
  2. (转)NAT与NAT穿透 原理
  3. Spark _15 _广播变量和累加器
  4. 三角形旋转c语言程序,c语言图形,请高手修改,效果是一个三角形绕一点旋转一周...
  5. 【java】简述CGLIB常用API
  6. STM32 ESP8266和Java服务器透传模式下的双向通信
  7. SinoBBD:以后发优势提供不一样的一体化融合CDN服务
  8. Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)
  9. android 开机优化,android5.0在开机优化应用的时候,怎么关闭优化强制启动
  10. 在Windows上安装FFmpeg程序
  11. 解决:Win10 程序切换/系统提示弹窗不在顶层
  12. Photoshop 技能167个 经典的Photoshop技巧大全
  13. PSP自制程序打包ISO方法及注意事项
  14. 【企业架构设计实战】2 业务架构设计
  15. “贵州与您相约”英文网站8月18日正式上线;大华股份助力长兴打造景区数字化管理样板 | 全球旅报...
  16. oracle 19c的卸载与安装
  17. oracle 19c dbua升级时ORA-20001报错的分析
  18. 为什么地球的生物都是碳基生命?科学家:大自然环境选择的结果
  19. 苹果邮箱 android设置字体,MacOS如何修改邮件字体大小?MacOS修改邮件字体大小的方法...
  20. 百度搜索限定时间_你不知道的搜索引擎那点事儿

热门文章

  1. 如何选择开源许可证?(Z)
  2. AngularJS 详解Directive(指令)机制
  3. 机器学习 对模型进行惩罚_使用Streamlit对机器学习模型进行原型制作
  4. 世界排名前20的大学毕业生去做银行柜员,柜员工资是不是很高?
  5. hi3531交叉编译环境arm-hisiv100nptl-linux搭建过程
  6. qt开发环境 - c++之无名名字空间,名字空间嵌套邻近原则(内藏外),名字空间别名
  7. python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程
  8. int arr 13 java,java学习13 - 数组的定义、操作、异常、二维数组
  9. matlab 邻近度 离群点_MATLAB自制迷宫游戏,快来试试吧!
  10. altium pcb 信号高亮_在PCB设计中高效的放置元件技巧