LLDB 调试 - 忽略特定 类 的变量以加快调试速度

LLDB debugging - ignore variables of specific classes to speed up debugging

我是 C++ 调试和 LLDB 的新手。我使用 VSCode 及其 c++ 适配器,LLDB 作为调试器,bazel 作为构建系统。我的应用程序处理处理图像。该应用程序运行速度很快,但调试速度非常慢。那是因为一旦我将图像加载到内存中,逐行检查每行大约需要 20 秒到一分钟。我的假设是原始图像对于调试器来说太多了。如果我使用小图像,那么我可以在调试器中快速单步执行代码

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

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

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

然后,如果您需要在单步执行时关注一两个变量,您可以使用工具提示或调试器控制台按需打印它们。您还可以在 lldb 控制台中设置 target stop-hooks 并将它们用于 auto-print 您正在跟踪的变量。

有些UI还把“Locals”视图和“Watched Expression”视图分开了,所以你可以关闭前者,把你需要看的变量放在后者。

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