求教 lldb 调试应用 断点位置和汇编对不上


#1

需求:
lldb断点IDA上看到的函数断点错误(IDA分析的汇编代码和调试的手机是相同的)
操作步骤:
a 使用po [xxx _shortMethodDescription] 打印出的方法地址和 用ida+ASLR偏移计算出的结果是一样的
但是 b xxx 断点后 显示却断在了另外的类上.

ASLR:
0x0000000000038000
IDA中方法的地址
10260B384

** 任何其他描述:
图中 连接后 操作的第一条po b 指令会报错 libarclite_iphoneos.a(arclite.o) failed to load objfile for
我的系统里存在这个文件。
请各位大神指教
** 环境: (系统版本,安装的相关工具,等操作)
xcode 8.3.3
mac os 10.12.6
iphone6 ios10.2


#2

重新上传下截图 之前的地址错了


ASLR
0x0000000000074000
IDA中方法地址
10260B384


#3

正常。这是因为OC方法没有符号lldb用上一个有符号的函数+offset来表示


#4

注意那个+27XXXX,就是说断在了这个函数再加27XXXXX的位置


#5

非常感谢


#6

哦 他断点的是没加偏移 自动帮他加了 偏移 27xxx 么


#7

this


#8

也遇到这个
ida+ASLR偏移得到的地址断点根本没用,提示warning: failed to set breakpoint site at 0x839b386 for breakpoint 3.1: error: 2 sending the breakpoint request
po [xxx _shortMethodDescription] 出来的地址又断在奇怪的方法上 void* std::__1::__thread_proxy<std::__1::tuple<void (MainScene::*)(),虽然能调试了,但是不在方法里