如何使用 LLDB 进入最外层函数调用?
How to step-into outermost function call in the line with LLDB?
假设我正在调试这样的代码
outer(fn1(), fn2());
如果我使用s
命令,LLDB会先进入fn1
,然后我输入fin
退出,s
再次进入fn2
, fin
... 直到现在我才能够进入 outer
这正是我从一开始就想要的。
有没有办法告诉 LLDB 在哪个函数调用上介入?
直接没有。
但是你可以在外部函数的定义中设置一个断点。
thread step-in --step-in-target outer
或更简洁地说,s -t outer
将在进入 outer
时停止。有关文档,请参阅 help s
。
lldb 附带了一个别名:sif
。在给定的示例中,您可以 运行:
(lldb) sif outer
你可以把它记成 step into function
它适用于部分匹配,不必使用完整的函数名称调用。在这种情况下,您也可以 运行 sif out
例如。
假设我正在调试这样的代码
outer(fn1(), fn2());
如果我使用s
命令,LLDB会先进入fn1
,然后我输入fin
退出,s
再次进入fn2
, fin
... 直到现在我才能够进入 outer
这正是我从一开始就想要的。
有没有办法告诉 LLDB 在哪个函数调用上介入?
直接没有。 但是你可以在外部函数的定义中设置一个断点。
thread step-in --step-in-target outer
或更简洁地说,s -t outer
将在进入 outer
时停止。有关文档,请参阅 help s
。
lldb 附带了一个别名:sif
。在给定的示例中,您可以 运行:
(lldb) sif outer
你可以把它记成 step into function
它适用于部分匹配,不必使用完整的函数名称调用。在这种情况下,您也可以 运行 sif out
例如。