Qt 5.15.0下QtCreator用CDB调试时QJsonObject在watchlist显示异常
问题根因说明
- 该问题并非调试设置错误导致,是Qt 5.15.0版本自带的CDB调试助手(debug helpers)的已知Bug,也存在于低版本Qt Creator适配Qt 5.15系列的场景中。Qt 5.15版本迭代时调整了QJsonObject的内部存储结构,对应调试解析脚本没有同步更新,导致监看列表无法识别并展示内部键值对,而代码运行时QJsonObject本身的逻辑是正常的,和你贴出的应用输出结果表现一致。
可行解决方法
- 方案1:升级Qt Creator至4.14.0及以上版本,新版本自带的调试辅助脚本已经完成了Qt 5.15系列QJson相关类型的适配,升级后无需额外配置即可正常显示QJsonObject、QJsonArray等类型的内容。
- 方案2:如果暂时不方便升级Qt Creator,可以手动替换调试辅助文件:找到Qt Creator安装路径下的
share/qtcreator/debugger/qttypes.py文件,替换为Qt 5.15.2对应版本的同名称文件,重启Qt Creator后即可生效。 - 方案3:临时调试可以在监看列表中添加自定义表达式
目标QJsonObject变量名.toVariantMap(),可以通过QVariantMap的结构间接查看QJsonObject的全部键值内容,无需修改现有配置。
内容的提问来源于stack exchange,提问作者smacker
相关产品推荐
相关产品推荐

