似乎在 Visual Studio 2015 调试器中可视化 Qt5.6 QStrings 不适用于标准的 QString 可视化方式(向 Visual Studio 2015\Visualizers 添加 natvis),就像在 Visual Studio 2013 及之前所做的那样。这个对吗?有没有人设法在 VS 2015 中添加 QString 可视化?
问问题
5004 次
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<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 的警告或详细日志记录:
于 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 回答