要在 LLDB 中查看我的堆栈,我目前使用以下内容:
(lldb) register read rbp --format hex
rbp = 0x00007fff5fbff820
然后查看前 64 字节向下增长:
(lldb) memory read --size 4 --format x --count 16 `0x00007fff5fbff820-64`
0x7fff5fbff7e0: 0x5fbff900 0x00007fff 0x00000000 0x00000000
0x7fff5fbff7f0: 0x00000000 0x00000000 0x00000000 0x00000000
0x7fff5fbff800: 0x00000000 0x00000000 0x00000000 0x00000000
0x7fff5fbff810: 0x5fbff838 0x00000006 0x00000008 0x00000000
我还没找到怎么做,但是有什么办法可以替换表达式:
`0x00007fff5fbff820-64`
更像是:
`%rbp-64`
谢谢!
最佳答案
`$rbp-64`
还有用于内存读取和打印的快捷格式化程序,其作用类似于 gdb。例如
x/16x `$rbp`
有关 x/和 p/可接受的格式化程序字符的详细信息,请参阅“help gdb-format”。这些实际上只是 memory read -G 和 expr -G 的命令别名。
关于c - LLDB - 评估寄存器中的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11968261/