Win7下 由Release版程序崩溃地址逆推崩溃代码行

本博客之前的一篇文章介绍过 

WindowsXP系统下 由Release版程序崩溃地址逆推程序崩溃代码行的技巧

一般都是如下图一样的提示,


相信程序员和测试人员都经常遇见类似的弹出窗口


为什么说前一篇文章提到的这个技巧只适用于WindowsXP系统下呢?

因为Win7系统下弹出的出错窗口没有写明引用的内存地址

如下图所示,win7的出错窗口,问题详细信息里找不到类似XP中的 “引用的xxxx内存”,即崩溃地址



刚开始我还抱怨微软,以前XP能用的东西到了Win7就不能用了,

不过最近因工作关系,加上一些研究,

发现Win7下这一技巧其实也是适用的,并且实际上微软做的更好了,

来看看怎么用


1.弹出错误信息窗口后,记录下 异常偏移,这里假设为  0x0000F2BD




2.在map文件中(如何获得map文件,参见本博客前一篇文章), 找到以“Preferred load...”开头的语句

例如: Preferred load address is 00400000   <<-----------这是基地址,即0x00400000

一.找到出错函数
{

异常偏移+基地址

0x0000F2BD + 基地址 = 0x0040F2BD


在以下开头的段部分

Address         Publics by Value              Rva+Base     Lib:Object

找到最接近但不超过 0040F2BD 的 位置,即是调用的函数

}


二.找到出错代码行:
{

0x0000F2BD - 0x1000 = 0xE2BD


在以下开头的段部分

Line numbers for...

找到最接近但不超过0xE2BD的位置,即是出错的的行号

}


假如你是Windows编程人员,掌握了这一技巧,相信会对你很有帮助

结合阅读这篇文章和上一篇介绍“Release版程序出错信息逆推出错代码行”的文章,相信你会更有所收获


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值