c++ - LLDB 调试 - 忽略特定类的变量以加快调试速度
问题描述
我是 C++ 调试和 LLDB 的新手。我使用 VSCode 及其 c++ 适配器,LLDB 作为调试器,bazel 作为构建系统。我的应用程序处理图像处理。应用程序运行速度很快,但调试速度很慢。那是因为一旦我将图像加载到内存中,遍历每一行大约需要 20 秒到 1 分钟。我的假设是原始图像对于调试器来说太多了。如果我使用小图像,那么我可以在调试器中快速单步执行代码
我的问题是:有没有办法告诉调试器忽略图像加载的变量?或者也许是延迟加载图像变量数据?我对矩阵等其他变量更感兴趣。
解决方案
除非明确要求,否则底层调试器 lldb 不会获取任何变量。请求变量值的始终是 UI。
在 Xcode 中,如果您关闭 Locals View,Xcode 不会要求 lldb 获取变量。这确实加快了在具有大局部变量的帧中的步进。
然后,如果您需要在单步执行时关注一两个变量,您可以使用工具提示或调试器控制台按需打印它们。您还可以target stop-hooks
在 lldb 控制台中进行设置并使用它们来自动打印您正在跟踪的变量。
一些 UI 还将“Locals”视图与“Watched Expression”视图分开,因此您可以关闭前者并将需要查看的变量放在后者中。
我不知道 VSCode 是否允许您关闭 Locals 视图,但如果可以,这可能是处理此问题的一种方法。
推荐阅读
- python - Python - 双不可行错误 SVM 二次问题 OSQP
- angular - 如何使用复选框过滤角度 8 中的垫表
- django - 将大文件上传到不同云服务时的最佳顺序
- python - 如何使用类中的字段?
- java - 如何在 Anylogic 的一个流程图中处理不同的材料?
- javascript - react-native 构建成功但没有显示
- node.js - node.js - 如何检查/获取 ssl 证书到期日期
- ios - dyld:库未加载:@rpath/Alamofire.framework/Alamofire 和 AlamofireImage
- android - Android 应用裁剪图像并将其发送到另一个活动
- ruby-on-rails - 从参数中的json响应中获取最低的数字/整数