似乎在Visual Studio 2015调试器中可视化Qt5.6 QStrings不能像在Visual Studio 2013及之前那样使用QString可视化的标准方式(向Visual Studio 2015 \ Visualizers添加natvis)。 它是否正确?有人设法在VS 2015中添加QString可视化吗?
答案 0 :(得分:2)
我在VS 2015中使用Qt 5.6成功地做了一段时间,虽然更新3或我做的一个补充开始搞砸了。这是我使用的定义:
<Type Name="QString">
<DisplayString IncludeView="nq">{((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),sub}</DisplayString>
<DisplayString ExcludeView="nq">"{((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),sub}"</DisplayString>
<StringView>((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),sub</StringView>
<Expand HideRawView="true">
<Item ExcludeView="simple" Name="[size]">d->size</Item>
<Item ExcludeView="simple" Name="[referenced]">d->ref.atomic._q_value</Item>
<ArrayItems ExcludeView="simple">
<Size>d->size</Size>
<ValuePointer>((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),c</ValuePointer>
</ArrayItems>
</Expand>
</Type>
如果您拥有现已弃用的VS Addin附带的Qt5.natvis文件,我将其添加到我的解决方案中,以便我可以对其进行修改。有很多东西不能正常工作,我一直在添加更多类型的东西。
注意:我添加了一个视图来显示没有引号的字符串,并添加了在别处使用view(simple)
来抑制子项的功能,但我认为这是未经修改的。
如果您仍遇到问题,可以打开Natvis的警告或详细记录:
答案 1 :(得分:1)
向Visual Studio for Qt添加调试兼容性的最简单的自动方法是安装Qt Visual Studio工具,然后在项目属性->配置属性->调试中将调试器类型设置为“混合”。
经过Qt 5.9.1和Visual Studio 2015的测试
答案 2 :(得分:0)