结合drwtsn32.log和.Map文件的查看、定位程序错误位置

原创 2013年12月02日 17:29:39

写下大致步骤方便以后查找

参考内容在两个链接的后半部分

http://blog.csdn.net/nokianasty/article/details/8504432

http://blog.chinaunix.net/uid-7186957-id-2677948.html

主要步骤:

1、在drwtsn32.log找到错误位置:错误 ->00458861 ff9098000000     call dword ptr [eax+0x98] ds:0023:bf0500f8=????????,记住其中的addr =00458861。

2、在对应的.map文件中的Address         Publics by Value       Rva+Base                                                  Lib:Object   的Rva+Base列找到刚刚大于00458861一点的行。如下:

        0001:000577d7       ?AfxCallWndProc@@YGJPAVCWnd@@PAUHWND__@@IIJ@Z 004587d7 f   nafxcw:wincore.obj
        0001:000578d4       ?GetCurrentMessage@CWnd@@KGPBUtagMSG@@XZ 004588d4 f   nafxcw:wincore.obj

其中第二是我们所要找的行,第一行是需要用到定位的。

3、在第一行中找到nafxcw:wincore.obj位置(一般是xx.obj,这里没找到,只找到相关的nafxcw.lib)如下

Line numbers for D:\应用软件-安装\VC98\MFC\LIB\nafxcw.lib(wincore.cpp) segment .text

    35 0001:0005746e    38 0001:00057489    39 0001:000574c7    40 0001:00057505
    41 0001:00057543    53 0001:00057577    54 0001:0005757f    55 0001:00057595
    58 0001:000575b5    59 0001:000575be    60 0001:000575d1    61 0001:000575da

                                   。。。。。。。。。。。。。。。。。。。。。。

   205 0001:00057835   210 0001:0005783c   211 0001:00057840   212 0001:00057848
   215 0001:00057856   218 0001:00057867 
  219 0001:00057872   221 0001:0005787f
   223 0001:00057881   224 0001:00057886   226 0001:0005788a   230 0001:0005789e
   233 0001:000578a0   235 0001:000578a4   237 0001:000578ac   239 0001:000578b5
   240 0001:000578b7   241 0001:000578c3   244 0001:000578d4   247 0001:000578e6

4、要得到行数的地址:0x00458861-0x00400000(程序装载地址)-0x00001000(PE头文件的大小)=0x00057861

5、发现0x00057861在第3行中相应范围行为  211 0001:00057840   212 0001:00057848
                                                                                215 0001:00057856   218 0001:00057867 

说明问题就在wincore.cpp的212行到215行之间

相关文章推荐

drwtsn32简介

前言:对于Debug模式程序的调试,大家都比较熟悉。但对于Release模式下程序异常崩溃,很多程序员束手无策。其实,Release模式的发布程序,通过一些方法也可以获取程序崩溃时的堆栈信息,并可以生...

如何定位Release 版本中程序崩溃的位置 ---利用map文件 拦截windows崩溃函数

1       案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭。请与您的供应商联系。呵呵,这句微软...

微信小程序开发——map地图组件,定位,并手动修改位置偏差。

环境搭建 注册,获取APPID(没有这个不能真鸡调试)下载微信web开发者工具(挺多bug,将就用)打开微信web开发者工具,扫码登录,新建小程序,输入APPID,勾选创建quick start项目...

微信小程序开发之真机测试 地图定位 map API 无法获取当前位置的问题

今天做到地图定位的模块.模拟器肯定是获取不到位置的.下面为真机测试结果. 上图: 经纬度不说了.定位用的,我这里直接输入的数字定位.但是有许多问题 下图中sc...

微信小程序开发之真机测试 地图定位 map API 无法获取当前位置的问题

今天做到地图定位的模块.模拟器肯定是获取不到位置的.下面为真机测试结果. 上图: 经纬度不说了.定位用的,我这里直接输入的数字定位.但是有许多问题 下图中scale是缩放比例,这...

MS-VC 使用MAP文件快速定位错误行 .

****************************************************************************************************...
  • QQIANQQ
  • QQIANQQ
  • 2011年07月05日 16:32
  • 1627

使用MAP文件快速定位程序崩溃代码行

作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统 造成巨大的损失。但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现...

MS-VC 使用MAP文件快速定位程序崩溃代码行

程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统造成巨大的损失。但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现程序崩...

使用MAP文件快速定位程序崩溃代码行

作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统造成巨大的损失。但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事。其实测试中出现程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:结合drwtsn32.log和.Map文件的查看、定位程序错误位置
举报原因:
原因补充:

(最多只允许输入30个字)