VS通过MAP追踪异常代码的位置详解
2016-06-15 17:05
323 查看
VS通过.map文件查找异常代码的位置
一、配置VS
1.配置禁用优化
2.配置生成汇编代码
3.配置生成MAP文件
二、查找崩溃代码位置
1.查看崩溃异常偏移
此处异常偏移为000019c3
2.查看程序加载地址
3.对照.MAP文件,查找第一处大于程序加载地址(00400000)+异常偏移(000019c3)的位置
004019e0是第一处大于004019c3的位置,那么崩溃就位于CTestHtmlDlg类OnButtonOk函数中,
4.查看TestHtml.cod
崩溃代码位于OnButtonOK函数
00000+(004019c3-004019b0)=00013的位置
注意部分函数起始地址不是00000;
可以看出*p=0为崩溃代码。
一、配置VS
1.配置禁用优化
2.配置生成汇编代码
3.配置生成MAP文件
二、查找崩溃代码位置
1.查看崩溃异常偏移
此处异常偏移为000019c3
2.查看程序加载地址
3.对照.MAP文件,查找第一处大于程序加载地址(00400000)+异常偏移(000019c3)的位置
004019e0是第一处大于004019c3的位置,那么崩溃就位于CTestHtmlDlg类OnButtonOk函数中,
4.查看TestHtml.cod
崩溃代码位于OnButtonOK函数
00000+(004019c3-004019b0)=00013的位置
注意部分函数起始地址不是00000;
可以看出*p=0为崩溃代码。
相关文章推荐
- java.io.IOException: Prepare failed.: status=0x1
- Thinkphp 空操作、空控制器、命名空间
- C#中RestoreDirectory属性
- C语言程序设计第二节课作业
- C语言程序设计第三节课作业
- TPL异步并行编程之任务超时
- Java 代理之动态代理 (续前)
- Python连接Hive
- Python基本运算符
- C++中类的多态和虚函数的使用
- C语言程序设计第三节课作业
- 如何保护Java程序 防止Java反编译
- C语言程序设计第二节课作业
- Java 自动装箱和自动拆箱注意的问题
- spring整合mybatis
- C语言程序设计第一节课作业
- 面向接口编程之二——编程实例
- python学习笔记 操作文件和目录
- Spring设置定时器:quartz
- Ruby常用文件操作代码实例