2015-05-28 54 views
1

可以在另一个地址所指向的位置轻松读取内存。lldb读取内存指针

例如,$ 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 
+0

我没有一个带有r0寄存器的架构来测试这个,但是'mem read'*(char **)$ r0''应该可以工作。 –

+0

嘿@MarkPlotnick我试过了,不起作用。 – d123

+0

有趣。什么架构是目标,以及什么版本的lldb? –

回答

2

由于@MarkPlotnick这部作品,

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

如果你需要在某个读取的内存地址偏移,下面可以做,

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

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