Qt 调试器在 OpenCV 中冻结

Posted

技术标签:

【中文标题】Qt 调试器在 OpenCV 中冻结【英文标题】:Qt Debugger Freezes With OpenCV 【发布时间】:2017-08-01 19:23:31 【问题描述】:

如果我不包含cv::Mat test;,那么调试器就可以正常工作。出于某种原因,包含该 1 行会杀死 Qt 调试器。

症状:

变量视图永远加载 编码程序冻结 - 您无法停止、启动或执行任何操作 编辑器功能正常 在您停止调试模式之前,断点将无法删除 40 秒后,您可以选择停止调试器,推断它可能处于无限循环中 - 这(或关闭 Qt)是停止调试器的唯一方法 在运行时运行代码按预期工作 在没有断点的情况下运行代码按预期工作

我没有做任何花哨的事情(据我所知),所以设置应该是安装时的默认设置。

版本信息:

Qt Creator 4.2.1 基于 Qt 5.8.0(MSVC 2015,32 位) 从修订版 7071b61e02

我不能再用这个了!它将调试过程减慢到爬行,只是找到错误所在。这个问题似乎是新的,几天前才刚刚开始。这是怎么回事?如何在不重新安装 Qt 的情况下使调试器恢复活力?提前致谢!

【问题讨论】:

使用 Visual Studio 在 Windows 上调试您的 Qt 应用程序,它有非常好的自己的调试器。即使没有为 VS 创建项目,这也很容易。使用 Qt Creator,您无需调试即可运行它并查看日志。 【参考方案1】:

这不仅仅是 OpenCV。我在 Windows 上也有同样的问题。 Windows 调试器 (WinDbg) 非常糟糕。很多时候,它就像您所描述的那样冻结,并且随着那个令人讨厌的等待旋转器而永远消失。甚至无法查看boost::filesystem::path 的值。有时它甚至不显示存在的变量(例如 this 有时),当我在 Qt Creator 中展开它时,它们显示为空。

因此,我决定不再在 Windows 上进行硬核调试。我所做的是在 Windows 上进行非常浅的调试,在 Linux 上使用 gcc 和 gdb 进行硬核调试。我有一个用于此目的的虚拟机 (VM Ware)。

【讨论】:

不是强大但难以使用的WinDbg,而是CDB。您在 Windows 上与 Qt Creator 集成的那个。 WinDbg 是一个专业的工具。 @AlexanderVX 可能。我不知道。也许我错了。但我的症状与那个人描述的完全一样,我放弃了 Windows 调试。 @TheQuantumPhysicist 嘿,感谢您的回复。我真的希望这不是解决方案,因为症状是新的......它也不是“技术上”解决问题,但我也接受这是一个有效的解决方法。因此,我会等待一段时间再接受它=p @user 我也对这样的解决方案感兴趣。让我们看看它是否存在。 用 Linux 调试 Windows 应用程序?我现在主要编写 Linux 代码,除了非常简单和可移植的代码之外,我永远不会认为这是一种方式。

以上是关于Qt 调试器在 OpenCV 中冻结的主要内容,如果未能解决你的问题,请参考以下文章

能把opencv的源码也进行调试吗?(需要pdb文件才行)

Qt Creator 在尝试运行 OpenCV 程序时崩溃。 [ntdll.dll 崩溃]

iOS 应用程序在设备上启动后连接调试器时冻结在空白屏幕上

调试断言失败(无符号)(c+1)<= 256(在 VideoCapture::open [Qt Creator] 中)

Visual Studio 2010:在断点处停止调试器过夜 = 在下一步后冻结

是否可以在浏览器中冻结 DOM 以进行拖动调试?