0

似乎在 Visual Studio 2015 调试器中可视化 Qt5.6 QStrings 不适用于标准的 QString 可视化方式(向 Visual Studio 2015\Visualizers 添加 natvis),就像在 Visual Studio 2013 及之前所做的那样。这个对吗?有没有人设法在 VS 2015 中添加 QString 可视化?

4

3 回答 3

3

你可以试试Qt Visual Studio 工具

于 2017-02-11T18:59:36.553 回答
3

一段时间以来,我在 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 的警告或详细日志记录:

选项 > 调试 > 输出窗口

于 2016-07-27T14:17:59.577 回答
2

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

针对 Qt 5.9.1 和 Visual Studio 2015 测试

于 2018-11-07T07:02:38.047 回答