【发布时间】:2019-10-19 13:48:49
【问题描述】:
假设我正在调试这样的代码
outer(fn1(), fn2());
如果我使用s 命令,LLDB 将首先进入fn1,然后我键入fin 以退出,s 再次进入fn2,fin...并且只有现在我可以进入outer,这是我从一开始就想要的。
有没有办法告诉 LLDB 调用哪个函数来介入?
【问题讨论】:
假设我正在调试这样的代码
outer(fn1(), fn2());
如果我使用s 命令,LLDB 将首先进入fn1,然后我键入fin 以退出,s 再次进入fn2,fin...并且只有现在我可以进入outer,这是我从一开始就想要的。
有没有办法告诉 LLDB 调用哪个函数来介入?
【问题讨论】:
lldb 带有一个别名:sif。在给定的示例中,您可以运行:
(lldb) sif outer
您可以将其记住为 step into function
它适用于部分匹配,不必使用完整的函数名调用。在这种情况下,您也可以运行 sif out,例如。
【讨论】:
lldb REPL 环境后输入help,就会出现支持的lldb 命令的完整列表,sif 就在那里。
thread step-in --step-in-target outer 或更简洁地说,s -t outer 将在它进入outer 时停止。有关文档,请参阅 help s。
【讨论】:
直接编号 但是您可以在外部函数的定义中设置断点。
【讨论】: