首页
社区
课程
招聘
[求助]调试symbian程序中arm汇编中的一个让我极度费解的问题!!
发表于: 2009-12-31 17:31 7888

[求助]调试symbian程序中arm汇编中的一个让我极度费解的问题!!

2009-12-31 17:31
7888
我用carbide 真机调试一个执行 一个带有chunk代码的程序,当执行到
008360  5A FF FF FA                   BLX     sub_80d0
spsr中的t位= 1没错,但单步执行却跳转到了地址80b8!!
并且将 80d0地址中的4个代码字节数据由70 B5 00 F0  修改为F4 23 F1 E7

blx跳转是直接跳转到目标地址并置t=1的,80d0中的机器码也是正确的thumb指令如下:
000080D0 70 B5                             PUSH    {R4-R6,LR}

而80b8地址是一个arm指令的函数地址, 通过指令码判断
008360  5A FF FF FA                   BLX     sub_80d0

应该是跳转到 80d0没错的,另外如果我将
008360  5A FF FF FA                   BLX     sub_80d0
修改为:
008360 blx r12 ; r12 = 0x80d0 +1
执行后跳转到 80d0也是能正常继续运行的

貌似是由于008360  5A FF FF FA                   BLX     sub_80d0这条指令导致异常??但是为什么会出现异常呢???实在是想不通,希望高人指点一下

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 13
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用ida调试也一样出此问题,relase版 debug版都“有可能”出此问题(不是所有编译程序都出这个问题,ui程序就无此问题), 貌似在80360这块调入E32Main时就不能单步调试,只能再E32Main中下断点运行进入调试,费解,不知道算不算TRK的一个bug还是什么
2010-1-5 16:39
0
雪    币: 64
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不懂,还要继续学习
2010-3-7 00:46
0
游客
登录 | 注册 方可回帖
返回
//