在arm64机器上调试armv7指令的APP 无法正确的显示指令

在arm64机器上调试armv7指令的APP 无法正确的显示指令

下断的函数地址
zh

基地址为

获取到函数的偏移为 函数地址-基地址 = 0x00148ff8 - 0x00004000 = 0x144FF8

用LLDB 附加上去 查看image list 拿到程序在内存中的地址为0x000c1000

计算出需要下断函数在内存中的地址为0x144FF8 + 0x000c1000 = 0x205FF8

查看一下地址的代码 dis -s 0x205FF8

跟IDA显示的完全不一样 下了断电以后跑起来 可以断下来,但是指令还是不能识别出来 单步执行也是一只卡在这一步,不能继续单步下去 请问有知道怎么解决么?????

这个是单步时候的情况~~

有知道什么原因的么。。。。。。。。。。。。。。。。。。。。。。

如果确认程序是armv7的话,试试在断点地址上+1,重新下一次断点。

地址+1的话 还是不能正确的显示指令的

你确定程序是armv7的么。。。是不是fat binary?

如果是fat binary 的花 要怎么定位? 我用hopper 和IDA分析都是直接选择的是armv7

看你截图是v7程序,那应该是断点地址错误。。或者是lldb版本问题,建议在设备上安装gdb再测试下。

:joy: 我断点地址计算的也没错了啊…但是就是不能显示正确的指令。。。。蛋疼~

别用lldb,再手机上装个gdb再试试,如果还不对就地址+1,肯定没问题的,我现在调试都是gdb,不用听狗神说用lldb的。。

lldb好像只有xcode5。1带的那版才能用

试试

dis -A thumb
dis -A arm

lldb是哪个版本的? 之前用3.7也是反汇编有BUG

好的 我再试下, 我调试ARM64的指令没问题。ARMV7的就挂了