lldb读取内存指针

lldb read memory pointer

可以很容易地读取另一个地址指向的内存。

例如$r0 = 0x15942600 在这个内存地址有AC B8 EC 14

现在要读取 0x14ecb8ac 处的内存,我必须这样做:

mem read $r0
mem read 0x14ecb8ac

有什么方法可以轻松完成 mem read ($r0) 以便我可以轻松读取内存?

我试过这个:

(lldb) mem re $r1
0x007db594: 7c d5 e7 15 00 00 00 00 e4 b5 7d 00 70 f6 9a 36

(lldb) mem read 0x15e7d57c
0x15e7d57c: 74 69 63 72 63 74 37 35 00 00 63 61 00 00 49 39

(lldb) mem read '*(char **)$r1'
error: invalid start address expression.
error: address expression "*(char **)$r1" evaluation failed

多亏了@MarkPlotnick,这才有效,

mem read '*(int **)$r1'

如果需要读取某个偏移量的mem地址,可以进行如下操作,

mem read '*(int **)($r1+4)'

针对 Xcode 针对 ARMv7 和 ARM64 的调试进行了尝试和测试