VS2005通过指令地址查找其所在函数的方法

方法一: map文件

1、记录地址。例如崩溃的位置是0x0047de39;

2、配置生成Map文件。属性页---->链接器---->调试---->生成映射文件选“是(/MAP)”---->映射文件名选编辑,然后点击右下角的宏,选择$(ProjectName),添加后缀.map,即$(ProjectName).map。

3、map文件中找到距离指令地址最近的地址。例如:

 

0002:00008df0       ?test2@@YAHHH@Z            0047ddf0 f   gtest_LogFileAnalysisTool.obj

 0002:00008e20       ?test@@YAXXZ               0047de20 f   gtest_LogFileAnalysisTool.obj

 0002:00008e50       ?TestBody@test_backtrace_havefun_Test@@EAEXXZ 0047de50 f   gtest_LogFileAnalysisTool.obj

 

 

方法二: 反汇编

在反汇编文件中查找指令地址。例如:

 

void test()

{

0047DE20  push        ebp 

0047DE21  mov         ebp,esp

......

     s /= 0;

0047DE33  mov         eax,dword ptr [s]

0047DE36  cdq             

0047DE37  xor         ecx,ecx

0047DE39  idiv        eax,ecx           //在这!

0047DE3B  mov         dword ptr [s],eax

     s++;

0047DE3E  mov         edx,dword ptr [s]

0047DE41  add         edx,1

0047DE44  mov         dword ptr [s],edx

}

0047DE47  mov         esp,ebp

0047DE49  pop         ebp 

0047DE4A  ret 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值