转:http://bbs.pediy.com/thread-196554.htm
之前很多人都xcode升级到了5以后,lldb在反汇编的时候显示会有问题,这边我就一并给出解决方案吧,也算是做个存档.
我的xcode是最新的版本是6.1,lldb版本也是最新lldb-320.4.156.
由于后期版本,苹果的lldb默认使用的是arm反汇编显示,所以这时候我们在显示我们想要的反汇编代码的时候必须要设置反汇编的格式(arm/thumb).
代码对比如下
IDA 上显示的代码
lldb通过设置反汇编显示arm或者thumb的对比
从以上可以明显看出,lldb默认显示arm指令都是以4字节为一条指令解释
设置了-A thumb 后, 则以2字节为一条指令解释(这应该就是想要的与IDA匹配的代码)
下面顺带提醒下
lldb调试在选择环境平台的时候还是给上明确的调试SDK,以避免不必要的错误
好了,尽自己一点微薄之力,希望能帮到这边有困惑的人.
PS :
目前的解决办法是修改/Applications/Xcode.app/Contents/SharedFrameworks /LLDB.framework/Versions/A/LLDB中的代码,具体参照: http://bbs.pediy.com/showthread.php?p=1346743
我的xcode是最新的版本是6.1,lldb版本也是最新lldb-320.4.156.
由于后期版本,苹果的lldb默认使用的是arm反汇编显示,所以这时候我们在显示我们想要的反汇编代码的时候必须要设置反汇编的格式(arm/thumb).
代码对比如下
IDA 上显示的代码
lldb通过设置反汇编显示arm或者thumb的对比
从以上可以明显看出,lldb默认显示arm指令都是以4字节为一条指令解释
设置了-A thumb 后, 则以2字节为一条指令解释(这应该就是想要的与IDA匹配的代码)
下面顺带提醒下
lldb调试在选择环境平台的时候还是给上明确的调试SDK,以避免不必要的错误
好了,尽自己一点微薄之力,希望能帮到这边有困惑的人.
PS :
目前的解决办法是修改/Applications/Xcode.app/Contents/SharedFrameworks /LLDB.framework/Versions/A/LLDB中的代码,具体参照: http://bbs.pediy.com/showthread.php?p=1346743
总结:
1.Xcode 5.0 版本的 lldb 正常使用没什么问题,
版本是 lldb-300.2.47
注:实测Xcode5.0.2版本的lldb,lldb版本是lldb-300.2.53,iPhone5是可以正常显示thumb指令.
2.Xcode 6.1 版本 lldb 会解析成 arm 一跑就崩溃
3.
Xcode 6.4 版本的lldb 会解析成arm 跑调试没问题,只是汇编现实有问题