Qt源代码调试配置
本文将指导你在Windows环境下,使用Visual Studio 2019调试Qt源代码。
前提条件
你已安装Visual Studio 2019。
操作步骤
- 使用Qt Setup或者安装后的根目录下的MaintenanceTools.exe来添加特定Qt版本的Sources组件以及Qt Debug Information Files组件。(建议先安装Qt特定版本的MSVC 2019 64-bit或者一起安装,否则可能Qt Debug Information Files会因为MSVC 2019编译库不存在,而忽略对应的库的pdb调试文件。);
- 下载安装Visual Studio的扩展商城里的Qt Visual Studio Tools扩展。如果直接安装,卡在下载进度上。那么可以点击该插件的详情网页,使用迅雷下载该插件的vsix包,使用离线的vsix包直接安装扩展。
- 安装好Qt VS Tools插件后,可以在Visual Studio的菜单栏 扩展-> Qt VS Tools看到它。第二级菜单里有“Qt Options”,还有“Open Qt Project File(.pro)…”菜单。
- 使用Qt VS Tools菜单里的Qt Options,进入Qt路径配置界面,将第1步安装的MSVC库的路径添加到Qt Versions标签页下。路径例如:D:\Programs\Qt\5.15.2\msvc2019_64,Name会自动显示成msvc2019_64,Compiler会显示成msvc。由于是添加的第一个Qt编译环境,所以这个msvc2019_64也会成为Default选中的环境。
- 使用Qt VS Tools菜单里的“Open Qt Project File(.pro)…”项,打开Qt的Examples里的测试工程。插件将会自动将Qt的工程转换成Visual Studio的工程,可以在解决方案管理器里看到转换的结果。
- 在解决方案管理器里右键点击此解决方案,在弹出的菜单里选择“属性”,将会打开此解决方案的属性页,定位到通用属性里的调试源文件,添加一项“包含源代码的目录”,将前面安装的Qt版本的源代码路径加上,例如:D:\Programs\Qt\5.15.2\Src。
- 在示例项目里设置断点,启动本地Windows调试器,程序就暂停在断点处了,这时单步跟踪(Step into)就自动跳转到Qt的源代码了。
已知缺陷
这样子的调试方案有一个缺陷,因为是用的Qt编译好的调试版dll和调试符号文件,所以c++代码里条件编译的某些分支是走不到的。
参考链接
- Microsoft Visual Studio主页:https://visualstudio.microsoft.com/
- Qt Visual Studio Tools 2019插件:https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2019
- 开源版Qt:https://www.qt.io/download-open-source