在Visual Studio 2013中调试Qt 4.8类型所需的文件在哪里?我听说过* .natvis文件,但是我发现Visual Studio 2013仅Qt5 * .natvis文件或Visual Studio 2012 Qt4 * .natvis文件。它们对我不起作用。 Visual Studio 2012 * .natvis和Visual Studio 2013 * .natvis是否不兼容?
最佳答案
任一人都应该“工作”,但是知道Qt 5 natvis将引用不同的对象结构,例如QString在Qt 5中具有成员offset
,但在Qt 4.8中没有。我从Qt VS插件中获取了Qt5.natvis,然后使用了所有无效的工具,我打开了autoexp.dat(执行此操作的旧方法),以查看VS插件创建的Qt修改并进行适当的更改。
autoexp.dat中的QString:
QString|*::QString{
preview ([$e.d->data,su])
stringview ([$e.d->data,sub])
children
(
#(
d: $c.d,
[size]: $c.d->size,
[referenced]: $c.d->ref._q_value
)
)
}
Qt5.natvis中的QString:
<Type Name="QString">
<DisplayString>{((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),sub}</DisplayString>
<StringView>((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),sub</StringView>
<Expand>
<Item Name="[size]">d->size</Item>
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
<ArrayItems>
<Size>d->size</Size>
<ValuePointer>((reinterpret_cast<unsigned short*>(d)) + d->offset / 2),c</ValuePointer>
</ArrayItems>
</Expand>
</Type>
您是如何尝试安装它们的?你得到什么错误?它们可以进入要由IDE添加的Documents \ Visual Studio 2015 \ Visualizers,也可以将它们放在项目树中并将它们添加到项目中。