【问题标题】:how to get current debugging process's info in __lldb_init_module?如何在 __lldb_init_module 中获取当前调试进程的信息?
【发布时间】:2021-07-07 06:08:13
【问题描述】:

lldb 扩展脚本的入口点是:

def __lldb_init_module(debugger, internal_dict):

但是,当我访问debugger.target 时,它是No Value

很多教程展示了如何使用SBDebugger.CreateTarget 来创建新的目标和进程,但是现在我正在从 IDE 的调试工作流程中进行调试,我认为我不应该自己创建目标,我只想获取(或等待for) 当前调试进程(由 IDE 启动)和目标,然后调用一些命令为pro hand -p true -s false SIGPWR

所以问题是我如何在非独立启动模式下访问current target

【问题讨论】:

    标签: python debugging lldb


    【解决方案1】:

    在命令行 lldb 中有两个读取 init 文件的阶段。

    ~/.lldbinit 在第一阶段被读取,在任何目标生成之前。这样,其中的命令可以调节目标的构造。所以从那里获取的模块不会看到任何目标。

    如果 CWD 中有一个 .lldbinit,它将在命令行上指定的任何目标之后获取源。这样就可以看到目标了。

    Xcode 中的等效项(如果您使用的是相当新的 Xcode)是您可以在运行方案的选项选项卡中指定的 lldbinit。

    另一种方法是在 main 上设置一个自动继续断点,并在该点获取您的 .lldbinit。请注意,如果您想使用process handle,则必须有一个正在运行的进程,因此您需要在某个断点处执行此操作...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      相关资源
      最近更新 更多