简 述: 前面用了两年 Linux,现切回来 win10 系统,略不习惯;感觉用 MSVC(VS2017) 和 win10 还有点不够利索,记一下解决方式。
MSVC 安装 pdb 符号包,调试 Qt 源码
Qt 程序增、删组件、卸载时失败,提示
"At least one valid and enabled repository required for this action to succeed."
[TOC]
本文初发于 “偕臧的小站“,同步转载于此。
问题
环境 win10 21H1
📎 Qt 5.12.11
📎 Visual Studio 2017
,创建一个空的 CMake + Qt 项目,用 VS 打开,调试进入 Qt 源码失败。
分析
使用 VS2017 调试进 Qt 源码,调试到 qwidget.cpp 的 .show() 的定义;一直进不去,查询之后调试符如下。
解决方式
用 MSVC 成功调试 Qt 失败,可检查如下:
- Qt5Guid .dll (Debug 模式下 dll 名称含 d)
- 加载了 pdb (确定版本没下错)
- 解决方案加载了 src源码
- 加载了符号调试包路径
方式一
下载对应的 pdb 压缩包,下载链接 download.qt.io,下载对应版本后解压
对此解决方案,添加 Qt 源码路劲,便于找到 .cpp 文件
添加符号调试包
断点调试, F11 进入 show() 函数定义成功;此时可以看到最底部, *d.dll、.pdb 都被加载正确,得以验证。
解决二
控制面板-Qt项选右键菜单更改时, 若报错提示 At least one valid and enabled repository required for this action to succeed.
解决方案为添加如下自定义:
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_51211/
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_mingw/
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_51211/
# 51211 表示 5.12.11 版本,可自行实际替换
点击添加组件,勾选 “Qt Debug Information Files”,安装即可。其它步骤同方式一。
姊妹篇
- VS2017 调试 Qt 源码,安装 PDB
- VS2019 调试 Qt5 时 QString 显示为内存地址而非字符串
- VS2022 And QtCreator10调试Qt源码教程 (推荐 2023.07)
若是 IDE 调试时发现没有 Qt 的符号调试包,教程可参考姊妹篇一;以及学会如何查看 对应模块是否加载
参考
系列
欢迎 star
⭐ 和 fork
🍴 这个系列的 C++ / QT / DTK
学习,附学习由浅入深的目录,这里你可以学到如何亲自编写这类软件的经验,这是一系列完整的教程,并且永久免费!”