Unreal3引擎中,大量使用了自定义的模版或数据类型,比如TArray、FName、FString等等,对于这三种数据类型,我们无法在VS2005中直接查看他们的值(起码不能像std::vector/std::string一样直观查看)。
通过msdn,得知vs2005的autoexp.dat可以可以给自定义的数据类型编写可视化脚本从而实现直观的调试。
经过一番研究,实现了对Unreal3数据类型的直观的可视化调试,方法如下:
打开vs2005目录中的autoexp.dat文件
找到[AutoExpand],在[AutoExpand]的下面添加一行:
FNameEntry=<Name,su>
翻到文件最后,添加以下代码到文件的最后:
; Unreal格式的数组
TArray<*>{
children
(
#array
(
expr : (($T1*)($c.Data))[$i],
size : $c.ArrayNum
)
)
preview
(
#(
"[",
$c.ArrayNum ,
"](",
#array
(
expr : (($T1*)($c.Data))[$i],
size : $c.ArrayNum
),
")"
)
)
}
; Unreal格式的FName
FName{
preview([((FNameEntry**)FName.Names.Data)[$c.Index]])
stringview([((FNameEntry**)FName.Names.Data)[$c.Index]])
}
; Unreal格式的字符串
FString{
preview([$c.Data,su])
stringview([$c.Data,su])
}
然后,到调试器里尽情看TArray、FString、FName等等平时不容易看的数据吧。效果图就不贴了。
此方法可以举一反三,用来实现对任意数据类型的查看。