Debugging 隐藏LLDB中某些源文件的堆栈帧

Debugging 隐藏LLDB中某些源文件的堆栈帧,debugging,lldb,Debugging,Lldb,当我的程序在使用LLDB的调试器中暂停时,我希望隐藏源自某些源文件(或库)的堆栈帧,使其不会出现在回溯中。这些框架通常对应于标准库函数,我不在调试过程中 在类似的注释中,我确实找到了target.process.thread.step avoid regexp,它允许我避免进入选择帧。但是,我还希望在回溯列表中抑制这些帧,并避免在上下移动括号时显示相同的帧 似乎可以修改,但不能有条件地隐藏某些帧。在lldb中没有这样做的工具。请随时向lldb.llvm.org的bug reporter提交功能请

当我的程序在使用LLDB的调试器中暂停时,我希望隐藏源自某些源文件(或库)的堆栈帧,使其不会出现在回溯中。这些框架通常对应于标准库函数,我不在调试过程中

在类似的注释中,我确实找到了
target.process.thread.step avoid regexp
,它允许我避免进入选择帧。但是,我还希望在回溯列表中抑制这些帧,并避免在上下移动括号时显示相同的帧


似乎可以修改,但不能有条件地隐藏某些帧。

在lldb中没有这样做的工具。请随时向lldb.llvm.org的bug reporter提交功能请求

OTOH,编写Python支持的lldb命令来呈现像您建议的那样成熟的回溯将是非常简单的。唯一不明显的一点是,获得帧格式驱动的帧打印的方式是:

ss = lldb.SBStream()
frame.GetDescription(ss)
然后,可以使用以下命令将帧添加到命令的结果对象:

result.PutCString(ss.GetData())
唯一一件非常困难的事情是重写帧编号,这样就不会显示遗漏帧的位置。如果您只是假装输出中的编号不同,那么接受帧编号的其他lldb命令都不会按预期工作。所以这不是个好主意。。。但这可能是一个小交易,事实上,一眼就能看到丢失帧的位置可能会很好