【问题标题】:How to step-into outermost function call in the line with LLDB?如何使用 LLDB 进入最外层的函数调用?
【发布时间】:2019-10-19 13:48:49
【问题描述】:

假设我正在调试这样的代码

   outer(fn1(), fn2());

如果我使用s 命令,LLDB 将首先进入fn1,然后我键入fin 以退出,s 再次进入fn2fin...并且只有现在我可以进入outer,这是我从一开始就想要的。

有没有办法告诉 LLDB 调用哪个函数来介入?

【问题讨论】:

    标签: c++ c debugging lldb


    【解决方案1】:

    lldb 带有一个别名:sif。在给定的示例中,您可以运行:

    (lldb) sif outer
    

    您可以将其记住为 step into function

    它适用于部分匹配,不必使用完整的函数名调用。在这种情况下,您也可以运行 sif out,例如。

    【讨论】:

    • 还有一个技巧:在进入lldb REPL 环境后输入help,就会出现支持的lldb 命令的完整列表,sif 就在那里。
    【解决方案2】:

    thread step-in --step-in-target outer 或更简洁地说,s -t outer 将在它进入outer 时停止。有关文档,请参阅 help s

    【讨论】:

      【解决方案3】:

      直接编号 但是您可以在外部函数的定义中设置断点。

      【讨论】:

        猜你喜欢
        • 2012-06-12
        • 1970-01-01
        • 1970-01-01
        • 2014-07-29
        • 1970-01-01
        • 1970-01-01
        • 2022-06-12
        • 1970-01-01
        • 2014-02-01
        相关资源
        最近更新 更多