【问题标题】:What is the equivalent of 'info frame' for lldb?lldb 的“信息框架”等价物是什么?
【发布时间】:2015-09-10 19:42:11
【问题描述】:

我尝试使用lldb LLVM 调试器,但我很习惯gdb。所以,我正在寻找与gdb 命令info frame 等效的lldb

我想显示有关当前帧的信息以及保存的寄存器(保存的程序计数器和保存的基指针)的位置。例如gdbinfo 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

【问题讨论】:

    标签: gdb lldb


    【解决方案1】:

    没有一个命令可以一下子显示所有这些信息。其中一些对您来说很容易获得,例如:

    (lldb) frame variable -L
    

    将向您显示 args 和 locals 的位置 - 尽管它也会向您显示值。帧打印一般会显示pc和源信息,reg read sp会显示堆栈指针。或者您可以将fpsp 添加到您的常规帧格式中(有关更多详细信息,请参阅此page)。

    有一个frame info 命令可以显示当前帧的相当简单的视图。当然可以扩展它以显示更多此类信息(可能在-v 标志下。)随时向lldb.llvm.org 的bugzilla 提出请求,或者如果您觉得很有动力,请自行添加。

    编写一个 Python 命令来收集所有这些信息并按照你的意愿呈现它并不难,如果你有一定的动力,但还不足以开始对 lldb 进行黑客攻击。

    【讨论】:

    • 好的,我怀疑没有等效项,因为尽管我搜索了,但我找不到任何东西...非常感谢您提供的指针和提示,以获取有关框架的更多信息。跨度>
    猜你喜欢
    • 2016-01-30
    • 2013-02-02
    • 1970-01-01
    • 2015-11-04
    • 2015-04-07
    • 2022-08-21
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    相关资源
    最近更新 更多