在Visual Studio 2015调试器中查看Qt5.6 QStrings

时间:2016-04-30 17:46:17

标签: visual-studio-2015 qt5 natvis

似乎在Visual Studio 2015调试器中可视化Qt5.6 QStrings不能像在Visual Studio 2013及之前那样使用QString可视化的标准方式(向Visual Studio 2015 \ Visualizers添加natvis)。 它是否正确?有人设法在VS 2015中添加QString可视化吗?

3 个答案:

答案 0 :(得分:2)

我在VS 2015中使用Qt 5.6成功地做​​了一段时间,虽然更新3或我做的一个补充开始搞砸了。这是我使用的定义:

<Type Name="QString">
    <DisplayString IncludeView="nq">{((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),sub}</DisplayString>
    <DisplayString ExcludeView="nq">"{((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),sub}"</DisplayString>
    <StringView>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),sub</StringView>
    <Expand HideRawView="true">
        <Item ExcludeView="simple" Name="[size]">d-&gt;size</Item>
        <Item ExcludeView="simple" Name="[referenced]">d-&gt;ref.atomic._q_value</Item>
        <ArrayItems ExcludeView="simple">
            <Size>d-&gt;size</Size>
            <ValuePointer>((reinterpret_cast&lt;unsigned short*&gt;(d)) + d->offset / 2),c</ValuePointer>
        </ArrayItems>
    </Expand>
</Type>

如果您拥有现已弃用的VS Addin附带的Qt5.natvis文件,我将其添加到我的解决方案中,以便我可以对其进行修改。有很多东西不能正常工作,我一直在添加更多类型的东西。

注意:我添加了一个视图来显示没有引号的字符串,并添加了在别处使用view(simple)来抑制子项的功能,但我认为这是未经修改的。

如果您仍遇到问题,可以打开Natvis的警告或详细记录:

Options > Debugging > Output Window

答案 1 :(得分:1)

向Visual Studio for Qt添加调试兼容性的最简单的自动方法是安装Qt Visual Studio工具,然后在项目属性->配置属性->调试中将调试器类型设置为“混合”。

经过Qt 5.9.1和Visual Studio 2015的测试

答案 2 :(得分:0)

您可以尝试Qt Visual Studio Tools