lldb 的 'info frame' 等价于什么?
What is the equivalent of 'info frame' for lldb?
我尝试使用 lldb
LLVM 调试器,但我已经很习惯 gdb
。所以,我正在寻找 gdb
命令 info frame
的等价物 lldb
.
我想显示有关当前帧的信息以及保存的寄存器(保存的程序计数器和保存的基指针)的位置。例如,gdb
的info frame
命令显示如下信息:
Stack level 0, frame at 0x7fffffffe090:
rip = 0x4004ba in main (example.c:6); saved rip = 0x7ffff7a54b45
source language c.
Arglist at 0x7fffffffe080, args:
Locals at 0x7fffffffe080, Previous frame's sp is 0x7fffffffe090
Saved registers:
rbp at 0x7fffffffe080, rip at 0x7fffffffe088
没有命令可以一次性显示所有这些信息。其中一些很容易获得,例如:
(lldb) frame variable -L
将向您显示 args 和局部变量的位置 - 尽管它也会向您显示值。帧打印一般会显示pc
和源信息,reg read sp
会显示堆栈指针。或者您可以将 fp
和 sp
添加到您的常规帧格式中(有关详细信息,请参阅此 page)。
有一个 frame info
命令可以显示当前帧的相当简单的视图。它当然可以扩展以显示更多此类信息(可能在 -v
标志下。)请随意向 lldb.llvm.org
的 bugzilla 提交错误请求,或者如果你自己潜入并添加它感觉很有动力。
编写一个 Python 命令来收集所有这些信息并按照您的意愿呈现它并不难,但还不足以开始对 lldb
进行黑客攻击正确的。
我尝试使用 lldb
LLVM 调试器,但我已经很习惯 gdb
。所以,我正在寻找 gdb
命令 info frame
的等价物 lldb
.
我想显示有关当前帧的信息以及保存的寄存器(保存的程序计数器和保存的基指针)的位置。例如,gdb
的info frame
命令显示如下信息:
Stack level 0, frame at 0x7fffffffe090:
rip = 0x4004ba in main (example.c:6); saved rip = 0x7ffff7a54b45
source language c.
Arglist at 0x7fffffffe080, args:
Locals at 0x7fffffffe080, Previous frame's sp is 0x7fffffffe090
Saved registers:
rbp at 0x7fffffffe080, rip at 0x7fffffffe088
没有命令可以一次性显示所有这些信息。其中一些很容易获得,例如:
(lldb) frame variable -L
将向您显示 args 和局部变量的位置 - 尽管它也会向您显示值。帧打印一般会显示pc
和源信息,reg read sp
会显示堆栈指针。或者您可以将 fp
和 sp
添加到您的常规帧格式中(有关详细信息,请参阅此 page)。
有一个 frame info
命令可以显示当前帧的相当简单的视图。它当然可以扩展以显示更多此类信息(可能在 -v
标志下。)请随意向 lldb.llvm.org
的 bugzilla 提交错误请求,或者如果你自己潜入并添加它感觉很有动力。
编写一个 Python 命令来收集所有这些信息并按照您的意愿呈现它并不难,但还不足以开始对 lldb
进行黑客攻击正确的。