Qt5在VS中调试时查看变量只能看到p,d指针的问题处理

在VS中对Qt程序进行调试时,有时会碰到变量信息只显示p,d指针的问题,譬如一个QList变量,添加到监视窗口之后,显示内容如下:

 既看不到QList大小,更看不到每个item的指针。

出现这个问题,是因为在VS的目录下缺少了定义显示Qt类型变量的.natvis文件。

VS的natvis文件一般放在如下路径(以本机VS2019举例):

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Packages\Debugger\Visualizers

对于Qt类型,在安装Qt时会自动安装对应的.natvis文件,但有时候可能因为某些问题,没有将.natvis文件放到上面的路径。

所以,我们要做的就是找到Qt的.natvis文件并放到VS对应的路径。

我本地通过everything,找到了qt5.natvis.xml.

 拷贝这个文件到上面的VS路径,去掉.xml后缀。

再运行VS时,发现变量还是不能查看。修改VS调试选项,看一下natvis的诊断消息:

发现VS分析了我们qt5.natvis和qt6.natvis两个文件,但是报了一个错:

解决方案: 修改qt5.natvis, 将里面所有的 "##NAMESPACE##::"字符串删除。

重启VS,能正确显示Qt变量了!

扩展: QtVsTools工具有一个在pdb中嵌入natvis的选项

 

如果此项为Enable,如果编译器找不到对应的qtxx.natvis文件时,编译会报错!!!!

 


版权声明:本文为wangw8507原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。