LLDB调试-忽略特定类的变量以加快调试 我是C++调试和LLDB的新手。我使用VSCODE和它的C++适配器,LLDB作为调试器,BAZEL作为构建系统。我的应用程序处理图像处理。应用程序运行速度很快,但调试速度非常慢。这是因为一旦我将图像加载到内存中,每行大约需要20秒到一分钟。我的假设是原始图像对于调试器来说太多了。如果我使用一个小图像,那么我就能够在调试器中快速地逐步完成代码

LLDB调试-忽略特定类的变量以加快调试 我是C++调试和LLDB的新手。我使用VSCODE和它的C++适配器,LLDB作为调试器,BAZEL作为构建系统。我的应用程序处理图像处理。应用程序运行速度很快,但调试速度非常慢。这是因为一旦我将图像加载到内存中,每行大约需要20秒到一分钟。我的假设是原始图像对于调试器来说太多了。如果我使用一个小图像,那么我就能够在调试器中快速地逐步完成代码,c++,debugging,visual-studio-code,lldb,vscode-debugger,C++,Debugging,Visual Studio Code,Lldb,Vscode Debugger,我的问题是:有没有办法告诉调试器忽略图像加载的变量?或者延迟加载图像变量数据?我对其他变量更感兴趣,比如矩阵。除非明确要求,否则底层调试器lldb不会获取任何变量。总是UI请求变量值 在Xcode中,如果关闭Locals视图,Xcode将不会要求lldb获取变量。这确实加快了在具有较大局部变量的帧中的步进速度 然后,如果在单步执行时需要关注一个或两个变量,可以使用工具提示或调试器控制台按需打印它们。您还可以在lldb控制台中设置目标停止挂钩,并使用它们自动打印正在跟踪的变量 一些UI还将“局部变

我的问题是:有没有办法告诉调试器忽略图像加载的变量?或者延迟加载图像变量数据?我对其他变量更感兴趣,比如矩阵。

除非明确要求,否则底层调试器lldb不会获取任何变量。总是UI请求变量值

在Xcode中,如果关闭Locals视图,Xcode将不会要求lldb获取变量。这确实加快了在具有较大局部变量的帧中的步进速度

然后,如果在单步执行时需要关注一个或两个变量,可以使用工具提示或调试器控制台按需打印它们。您还可以在lldb控制台中设置
目标停止挂钩
,并使用它们自动打印正在跟踪的变量

一些UI还将“局部变量”视图与“关注的表达式”视图分开,因此您可以关闭前者,并将需要查看的变量放入后者


我不知道VSCode是否允许您关闭Locals视图,但如果允许,这可能是处理此问题的一种方法。

不是调试器加载图像,而是程序,调试器遍历堆栈帧和全局变量。这是事实,我不想让它看起来像这样。我已经更新了这个问题。如果你对图像不感兴趣,请使用非常小的图像进行调试。正如我在文章中提到的,我正在使用非常小的图像进行调试。但是,一些算法,例如特征提取,对较小的图像的工作方式非常不同。这完全解决了问题。我只需要在调试器中隐藏“变量”选项卡。谢谢