VS2012下通过MAP追踪异常代码的位置
来源:互联网 发布:java短信验证码登录 编辑:程序博客网 时间:2024/06/05 22:52
本文中涉及的编译环境为Visual Studio 2012.
#include "stdafx.h"double DivideBy (double dividend, double divisor) { double retVal = dividend / divisor; return retVal; }int _tmain(int argc, _TCHAR* argv[]) { DivideBy (1.0, 0.0); return 0; }
编译时生成MAP文件,以及COD文件:
1. Configuration Properties->Linker->Debugging->Generate Map File,设置为Yes (/MAP).
2. Configuration Properties->C/C++->Output Files->Assembler Output,设置为Assembly, Machine Code and Source (/FAcs).
注:若Configuration Properties->C/C++->Optimization->Optimization需要设置为Disabled (/Od),否则,MAP文件内容可能会被优化而无法定位到出错的函数。
运行exe,肯定会出现异常。
查看详细信息,找到Exception Offset: 00001008,因为exe默认的基地址是400000,所以相加后=401008.
第一步,打开程序的MAP文件,定位出错的函数:
可以看出第一个大于401008的位置是_wmain函数,再往前查看,可以知道出错的函数为DivideBy。
第二步,打开相应的COD文件,定位出错的代码行:
由上面可以算出一个偏移量=401008-401000=8
所以,代码行就是第5行。
0 0
- VS2012下通过MAP追踪异常代码的位置
- VS通过MAP追踪异常代码的位置详解
- system.map代码追踪调试
- 怎么追踪手机号码的位置
- VS2012通过makefile编译OpenGL红宝书的示例代码
- 通过代码查找调用类的位置
- cocos2d-x在VS2012环境下编译的异常
- 追踪uboot下tftp命令的代码执行过程
- 追踪uboot下tftp命令的代码执行过程-Nagul
- 追踪uboot下tftp命令的代码执行过程
- vs2012 下代码托管 Github
- Java map结构通过value来追踪key
- Eclipse的代码追踪功能
- Vs2010追踪服务器端的代码
- Eclipse的代码追踪功能
- 嵌入式 uboot下tftp代码追踪
- 通过ip追踪局域网的计算机名
- 如何通过map文件轻松找到崩溃的代码行
- 十八款Hadoop工具帮你驯服大数据
- 常用CentOS命令整理
- 打入“内部”寻“内幕”
- 【翻译】使用新的Sencha Cmd 4命令app watch
- cygwin中清屏的方法
- VS2012下通过MAP追踪异常代码的位置
- JSP标签
- Perl语言入门(第五版) 读书笔记(一)---列表、数组、子程序
- Quartz在真实项目中的使用(结合Spring框架)
- DB2数据库,执行存储过程报错 SQLSTATE=22003
- CSS之解决Div背景颜色了渐变问题
- oracle数据库管理基础知识
- 【Expression 序列化】WCF的简单使用及其Expression Lambada的序列化问题初步解决方案(二)
- SQL方式实现SQLite增删改查