Qt 5.1.0在Windows上使用minGW 4.8需要很长时间才能进行调试

时间:2013-09-12 08:38:40

标签: c++ windows qt debugging mingw

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

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

如果这有帮助,我会在调试时获得大量输出:

Temporarily disabling breakpoints for unloaded shared library "C:\Qt\Qt5.1.0\5.1.0\mingw48_32\plugins\somefolder\somelib.dll"

4 个答案:

答案 0 :(得分:4)

在7.4和7.5之间的某个时刻引入了一个gdb错误,这使得速度慢得多。调试QObject类时,速度变得非常慢。

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

似乎要么:

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

解决了这个问题。

答案 1 :(得分:4)

Qt创建者在其gdb选项中“尝试快速启动”。它有很多帮助。

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

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

答案 2 :(得分:1)

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

在我这样做之后,调试器启动时间现在是4秒,并且在应用程序崩溃时它没有延迟。它也sped up builds很多。

作为参考,我已经描述了我如何设置我的系统here

答案 3 :(得分:0)

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

  • 确保编译器是gcc.exe,而不是Qt5.1.0\Tools\mingw48_32\bin文件夹
  • 中的g ++。exe
  • 未选中Use Debugging Helper工具 - >选项 - >调试器 - >本地&表达式菜单
  • 未经核实Stop when qWarning() is calledStop when qFatal() is called