背景
在windows上面开发软件使用的环境是Qt + MSVC2017 +CDB(10.0.19041.685)在调试时出现每当打下断点然后再往下单步执行某个函数的时候就会卡死。
解决过程:
- 尝试了最新版本的CDB也会出现这个问题。
- 删除掉中文注释也会出现这个问题。
- 更换之前的上位机工程也会出现这个问题。
- 更改调试时的堆栈大小,问题未解决。
- 换了低版本的CDB(6.3.9600.17298)问题解决。
复现的方法:
- 程序开启调试然后打个断点让程序暂停。
- 当程序单步执行到函数时,就会有概率出现卡死情况。
解决方法:
- 换低版本的CDB。(在win8.1套件中的CDB工具)。
如何更换CDB工具
参考连接:为Qt creator安装CDB调试器_qt cdb 网盘-CSDN博客
注意:
- 在进入下载CDB工具的界面 Win11下的CDB版本和Win10下的CDB版本不一样,Win11版本比win10新,但是大版本一致,并且下载的默认的安装路径两个一样,都是在C:\Program Files (x86)\Windows Kits\10\Debuggers\x86 或者C:\Program Files (x86)\Windows Kits\10\Debuggers\x64下。
- 如果像上面安装两个版本的CDB,新的版本会将老的版本替代掉。这样在Qt Creator中只会发现1个版本的CDB。
- 当安装Win8.1时,系统会默认安装在C:\Program Files (x86)\Windows Kits\8.1\Debuggers 目录下。这样两个版本的CDB版本可以共存,并且都可以被Qt Creator 检测到。这样在 标注的6处步骤可以随意切换两个版本的CDB。