Qt 5.1.0 on Windows 使用 minGW 4.8,需要很长时间才能调试

Qt 5.1.0 on Windows using minGW 4.8 taking a really long time to debug

本文关键字:长时间 调试 on Windows minGW 使用 Qt      更新时间:2023-10-16

我已经从qt项目下载页面下载并安装了适用于Windows 32位(MinGW 4.8)的Qt 5.1.0。我已经运行了安装程序,并且能够使用这些库和 minGW 4.8 32 位工具链编译和运行应用程序。

但是,我有一个大型应用程序,当我尝试调试它时(使用与 minGW 工具链捆绑的 gdb),开始运行需要花费大量时间,并且与应用程序的任何交互都需要很长时间才能完成。不是烦人的时间,而是无法使用的时间。还有其他人遇到过这个问题吗,有什么解决方案吗?

如果这有帮助,我在调试时会得到很多输出:

Temporarily disabling breakpoints for unloaded shared library "C:QtQt5.1.05.1.0mingw48_32pluginssomefoldersomelib.dll"

7.4 和 7.5 之间的某个时候引入了一个 gdb 错误,这使得它的速度要慢得多。调试 QObject 类时,速度越慢,速度越慢。

通过禁用调试帮助程序,您可以改进它,但随后您会错过局部变量和表达式中的许多宝贵信息。例如,您无法很好地显示QLists的内容等...

似乎要么:

  • 从 CVS 或 CVS 构建 gdb
  • 使用较旧的 GDB (7.4.1)

解决了问题。

Qt创建者在其gdb选项中具有"尝试快速入门"。它有很大帮助。

或者,您可以切换到在Windows上使用MSVC编译器。这也会将调试切换到 CDB 而不是 GDB,并完全绕过问题。如果你不喜欢MS IDE,你可以安装MSVC编译器并将其插入QtCreator而不是mingw。

附言这也为您提供了可读的核心转储,这是天赐之物。

请参阅Zeks回答的评论。在那里,他解释说,从MinGW工具链切换到Microsoft工具链(编译器,调试器)可以完全解决问题。幸运的是,Qt Creator支持Microsoft工具链,因此您无需切换IDE。

在我这样做之后,调试器启动时间现在是 4 秒,并且在应用程序崩溃时延迟为零。它还大大加快了构建速度。

作为参考,我在这里描述了我如何设置我的系统。

在更改了几个设置后,我设法显着提高了调试速度:

  • 确保编译器是 gcc.exe 而不是 g++.exe 在 Qt5.1.0Toolsmingw48_32bin 文件夹中
  • "工具"->选项"->"调试器->局部变量和表达式"菜单中未选中的Use Debugging Helper
  • 未选中的Stop when qWarning() is calledStop when qFatal() is called