Windows上Qt源码调试(使用VS或Qt Creator)

这里分两种情况,使用 Qt Creator 或者 Visual Studio,我以 Qt5.12.6 和 VS2019 来做示例。

1.使用 Qt Creator

首先,确保自己的 CDB(MSVC用) 或者 GDB(MinGW用) 已经配置好了,不然你也没法调试。其中 GDB 安装的时候选了 MinGW 默认就有,而 CDB 需要自己装(https://blog.csdn.net/qq_32768743/article/details/84938265),如果使用的 Qt 在线安装包你把 Debug Tool for Windows 和 Qt Debug Information Files 勾选上就好了(Qt5.15开始社区版只提供了在线安装,安装的时候把 Debug 相关的勾选上即可)。

其次,Qt Creator 断点调试需要有调试信息,即构建配置的 Sperate debug info,在 Debug 模式下 Qt Creator 默认值应该是会生成的,Release 手动设置下即可:

一般情况下,我们断点调试进入 Qt 类的函数里是一堆汇编,我们需要配置下源码。先把所用 Qt 库版本对应源码下下来解压(Index of /archive/qt/5.12/5.12.6/single),或者安装时选择把源码(source 选项)一并安装。

接下来设置源码路径,打开 Qt Creator ,菜单中依次点击【工具】【选项】【调试器】【概要】,右侧有【添加Qt源码】按钮,点击之后选择你源码所在目录即可(此处为选中 qt-everywhere-src-5.12.4 文件夹,注意源码要和当前使用库的版本要一致,至少大版本兼容)。

(2022年9月17日补充:目前新的版本【选项】页在【编辑E】【Preferences】菜单路径)

接下来随便测试下,打个断点,单步调试。F5 开始调试(或点击带虫子的绿三角调试运行),F11 进行单步调试(或点击 Step Into 按钮)。可以看到,现在已经可以正常进入 Qt 源码,而不是一堆汇编了。

可以发现,如果是 MSVC 编译器的话,还需要 pdb 文件,不然最后还是不能进入源码的(MinGW没影响)。不同版本的 pdb 文件,Qt 放的目录不同,以前有些可能直接和 exe 安装包同一个下载目录,Qt5.12 的话在这个目录了:Index of /online/qtsdkrepository/windows_x86/desktop

打开 Qt 安装目录的管理工具  MaintenanceTool.exe,依次点击【设置】【资料档案库】【临时资料档案库】【添加】,在后在资料档案库位置填你对应的版本(你也可以直接下载下来)。这里我是参照qt5.12调试信息(pdb文件)安装 – simba

可以看到一个 Debug Info File 的东西(如果你是用的在线安装包,本来就有这个选项):

然后漫长的在线安装过程,安装完即可进行 MSVC 版本的源码调试了。

2.使用 Visual Studio

使用 VS 的好处是相比 Creator 调试工程更强大。

用 VS 进行 Qt 源码调试的话也是需要 pdb 文件的,可以参照上一节安装。

然后我们配置下源码路径,在解决方案的属性页(不是工程属性)里添加源文件目录(这里和 Qt Creator 有点不一样,我用 Qt5.12.6 没法加载 Qt5.12.4 的源码,换成对应版本源码就好了):

然后设置 pdb 路径,点击 VS 菜单的【工具】【选项】【调试】【符号】,把 pdb 文件的路径设置下:

打个断点调试下:

成功进入源码(加载 pdb 符号文件挺慢的):

本节参照:https://www.jianshu.com/p/15333f44df4b

3.参考

参考博客(Qt+MSVC):https://blog.csdn.net/qq_32768743/article/details/84938265

参考博客(Qt Creator):QtCreator 调试源码 - kaizenly - 博客园

参考博客(VS):VS2015+QT5.9.5调试进QT源码的环境搭建【Debugging QT——Step into QT source code】_小棋学编程的博客-CSDN博客

参考博客(VS):https://www.jianshu.com/p/15333f44df4b

参考博客(Qt5.12 pdb):qt5.12调试信息(pdb文件)安装 – simba

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龚建波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值