如何在LLDB中逐步进入最外部的函数调用?

时间:2019-06-04 03:27:12

标签: c++ c debugging lldb

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

from(items).pipe(
  mergeMap((data) => from(data['boxing']).pipe(
    reduce((acc, x) => acc + x),
    map((val) => { data['boxing'] = val; return data })
  )),
  toArray()
).subscribe((val) => console.log(val));

如果我使用 outer(fn1(), fn2()); 命令,LLDB将首先进入s,然后键入fn1退出,fin再次进入{{1} },s ...,直到现在,我才可以涉足fn2,这是我自开始就想要的。

有没有一种方法可以告诉LLDB哪个函数调用了步入式?

3 个答案:

答案 0 :(得分:2)

thread step-in --step-in-target outer或更紧凑地说,s -t outer进入outer后将停止。有关文档,请参见help s

答案 1 :(得分:2)

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

(lldb) sif outer

您可以将其记为 s ,将 i 连到 f 功能

它与部分匹配项一起使用,不必使用完整的函数名来调用。在这种情况下,您也可以运行sif out

答案 2 :(得分:-1)

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