调试过UE3代码的同学都知道 UE3中有大量自定义结构体如FString、TArray、TMap等,这些数据类型默认的VS是无法直接显示的,当然你可以每次查看FString的时候都在Watch里强制转换
(char*)Allocation.Data=。=
这里使用VS12特有的.natvis文件用来显示自定义的调试信息,VS10以前的autoexp文件怎么修改google一下一大堆 就不多写了
在($VSINSTALLDIR)\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers下建立UE3.navtis文件,填入如下内容
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="FString">
<DisplayString>{AllocatorInstance.Data,su}</DisplayString>
<StringView>AllocatorInstance.Data,su</StringView>
</Type>
<Type Name="FName">
<DisplayString>{((FNameEntry**)Names.AllocatorInstance.Data)[Index]->AnsiName,s}</DisplayString>
<StringView>((FNameEntry**)Names.AllocatorInstance.Data)[Index]->AnsiName,s</StringView>
</Type>
<Type Name="TArray<*,*>">
<DisplayString>{AllocatorInstance.Data}</DisplayString>
<Expand>
<Item Name="[size]">ArrayNum</Item>
<ArrayItems>
<Size>ArrayNum</Size>
<ValuePointer>($T1*)AllocatorInstance.Data</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="TSet<*,*,*>">
<DisplayString>{Elements.Data.ArrayNum}</DisplayString>
<Expand>
<Item Name="[size]">Elements.Data.ArrayNum</Item>
<ArrayItems>
<Size>Elements.Data.ArrayNum</Size>
<ValuePointer>((FElement*)Elements.Data.AllocatorInstance.Data)</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="TMap<*,*,*,*>">
<DisplayString>{Pairs.Elements.Data.ArrayNum}</DisplayString>
<Expand>
<Item Name="Set">Pairs</Item>
</Expand>
</Type>
</AutoVisualizer>
注意把Xml里的< 和 >换成 < 和 >
浙公网安备 33010602011771号