Qt creator 调试模式真的很慢

Posted

技术标签:

【中文标题】Qt creator 调试模式真的很慢【英文标题】:Qt creator debug mode is really slow 【发布时间】:2016-01-22 22:42:05 【问题描述】:

类似的问题是here 和here

我的情况是我在 Windows 10 机器上使用 Qt 5.5 和 Qt creator 3.5。开始调试我的项目大约需要 10 到 15 秒。我的项目使用快速控制。我不确定这是否相关。

在我的 Qt 创建器中,我找不到 CDB 调试器。在我的根磁盘中搜索“cdb.exe”一无所获。

我现在的装备是

调试器:用于 MinGW 4.9.2 32 位的 GNU gdb 7.8 编译器:MinGW 4.9.2 32bit Qt 版本:Qt 5.5.1 MinGW 32bit

编辑: CPU:酷睿 i7 3.3GHz 内存:32GB 固态硬盘

是否有任何解决方法或者我需要安装 CDB 并在 Qt creator 中配置它?

【问题讨论】:

快速查看 Qt 调试 DLL 会发现它们的大小超过 1 GB。将所有代码连接到调试环境需要时间。对我来说,启动需要 5-6 秒,然后运行正常。 没想到这么大。 10-15 秒不运行调试器是不常见的。 @FrankOsterfeld - 什么?平均机械硬盘的读取速度约为 100 mb/秒,因此仅读取调试库就需要 10 秒。目前尚不清楚 OP 有什么样的系统,CPU 速度有多快,RAM 有多少,可能涉及到分页。通过将我的工具链从 10k raptor 移动到 SSD,我从 10 秒缩短到 5 秒。也许你习惯了在调试会话之间将数据保存在内存中的调试器,但 gdb 显然每次都会加载所有内容。 是的,它有点模糊,不清楚 OP 只是在运行调试构建还是调试。 【参考方案1】:

在使用 Visual Studio Professional 2015(更新 3)在 Windows 10 (Redstone) 中更新到 Qt 5.6.1 时,我还遇到了 cdb.exe 的严重缓慢问题。该进程 (cdb.exe) 只会在构建结束后和调试开始前将 Qt Creator 挂起 30 多秒。

如果其他人遇到这样的缓慢,并且没有运气缓存符号,我想通过下载Windows 8.1 SDK 分享这一点,只安装调试工具并重新打开 Qt Creator,我能够将工具包更新为自动检测 8.1 调试器 (cdb.exe),一切又开始正常工作。

【讨论】:

我从 10 换到 8.1。起初它似乎更快,但现在又像以前一样慢。可能与SDK版本无关。【参考方案2】:

我在使用 CDB 调试 Windows 10 Professional、Qt 5.5.1 和 Qt Creator 3.5.1 时遇到了非常缓慢的问题。它几乎无法使用。我发现 Windows 调试符号需要很长时间才能加载。当我直接进入 windows 符号服务器时,需要几分钟。所以,我从这里下载了 windows 符号: Windows Symbol Packages

我安装了符号,然后在 Qt Creator 中设置了 CDB 符号路径。现在很活泼。

【讨论】:

【参考方案3】:

CDB 是 Windows SDK 的一部分。您可以为您的系统获取Windows SDK 8.1 或Windows SDK 10。然后按照 Qt 文档:Setting Up Debugger.

【讨论】:

谢谢,我试试看 我尝试使用 Microsoft Visual C++ 编译器 14.0(x86) 和 Windows SDK 10 中的 cdb。它给了我一个链接错误,如下所示。 “LNK1104:无法打开文件 'C:\Qt\5.5\mingw492_32\lib\qtmaind.lib'” 它确实说我的 Qt 版本是 Qt 5.5.1 MinGW 32bit。我需要重新安装整个 Qt 还是从源代码编译它?我的是企业试用版。 您可以运行 Qt 维护工具,然后下载您需要的任何 Qt/Compiler 预构建包。然后你应该选择菜单 Projects 并为你的项目选择 Qt/Compiler 工具包。【参考方案4】:

对于 CDB 调试器转到:

工具 >> 选项 >> 调试器 >> CDB 路径

检查符号路径并删除服务器路径 (http://msdl.microsoft.com/download/symbols)

【讨论】:

【参考方案5】:

使用带有 Windows 10 的“直接开箱即用”Qt 5.7,我的编译过程非常缓慢。

我通过将 MinGW 工具链与 Windows 交换来解决了这个问题(编译时间除以 10)

在 Qt Creator 中,在 Tools/Options/Build & Run 中,您需要确保 Qt Versions、Compilers 和 Debuggers 三个选项卡均已设置

Qt 版本需要 MSVC2015,您可以在 Qt 安装的根目录下使用 MaintenanceTools.exe 获得它(默认为 C:\Qt)

编译器需要 MSVC C++ 14.0,我想你可以通过 Visual Studio 2015 获得它(它已经为我准备好了)

调试器需要 CDB,您可以通过 Windows Kit 10 获得它

我安装了所有东西,肯定会在我的项目(桌面 MSVC2015)中添加一个新工具包,然后噗!编译时间消失了

【讨论】:

以上是关于Qt creator 调试模式真的很慢的主要内容,如果未能解决你的问题,请参考以下文章

Qt Creator 安装SDK,在MSVC编译模式下使用CDB调试器

Qt Creator的CDB调试器--使用技巧与解决调试很慢的心得,重点是Symbols Path设置

在 Qt creator 的发布模式下设置断点

Qt Creator 程序调试

使用 Qt Creator / qmake / MinGw 的预编译标头无法在调试版本中工作

Qt Creator 卡在 Mac 操作系统上的“启动调试器”中