fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
阅读:2493回复:7

如何定位应用程序造成的data abort

楼主#
更多 发布于:2008-11-04 19:43
程序在跑的时候,串口会打印Data Abort,但是不会挂掉,等到运行一段时间后,程序就挂了。打印出来的信息如下:
Data Abort: Thread=0x8d78283c       Proc=80f26e60 (A.exe)      

AKY=00000101    PC=03fcd150    RA=000198d8    BVA=12000000    

FSR=00000007        

以前看到过别人结合map文件去定位data abort错误,可是我这里打印出来的信息并没有指出A.exe的偏移量,所以不知道该怎么确定偏移量。我试着用PC的低四位d150去定位,可是所指向的map文件中的函数感觉是不会有错误的,头痛啊。不知道上面的这几行信息能否定位出错误的位置呢?
  另外请教下高手,wince下的exe文件的格式与台式机上的是否一致,都是PE?如果是的话,似乎代码段的偏移还要扣掉0x1000才对。
wenzai
驱动中牛
驱动中牛
  • 注册日期2002-04-16
  • 最后登录2011-03-04
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望424点
  • 贡献值0点
  • 好评度309点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-11-05 20:22
用RA=000198d8 -0x1000 定位
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-11-07 11:00
wenzai 兄能否详细说明一下 感谢
[url]http://sniper167.bokee.com[/url]
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-11-12 10:39
多谢wenzai兄指点,我去试试看这个灵不灵。前一阵子我就只能用二分法来定位问题,一个模块一个模块的找,快累死了,笨人用笨办法啊,呵呵。
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-11-12 14:25
我在程序中故意造了一个错误,调用memcpy时指定了拷贝0xffffffff个字节,出现了data abort,这次串口打印出来的数据是:Thread=8f88_e49c  Proc=8d727010    "A.exe"  
AKY=00000401  PC=03fbfca0    RA=35000000   BVA=1607fbb7    FSR=00000003


map文件里面,对应出错函数的地址为
0001:0000e7c8                    0001f7c8        

这样用RA来定位似乎又不准了啊。wenzai兄,这种情况该如何计算函数地址呢?
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-11-12 15:59
刚才在网上搜了下,wince下要用 PC=03fcd150 来定位。别人的串口打印出来的都是
 PC=03fcd150 (nk.exe+ 0x????????),我的并没有这个偏移量。

现在问题变成 nk.exe的地址是多少呢? 这个跟load address和jumpaddress应该都不一样。
werna
驱动牛犊
驱动牛犊
  • 注册日期2007-10-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望105点
  • 贡献值0点
  • 好评度50点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-11-22 12:50
你試試CrashFinder這個工具,很好用.....對著map去找太累了.
fishly_0
驱动小牛
驱动小牛
  • 注册日期2005-09-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分51分
  • 威望466点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-12-04 11:04
感谢。一段没时间了,还以为没人回这个贴了呢,呵呵。多谢。
游客

返回顶部