我的类型定义为:
typedef unsigned short StringChecksum;
我最终打算使用NatVis在我们加载到内存中的全局字符串表中显示相应的值。
所以我定义了一个新的NatVis进行测试(这是我第一次):
<?xml version="1.0" encoding="utf-8" ?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="StringChecksum">
<DisplayString>StringChecksum {this}</DisplayString>
</Type>
</AutoVisualizer>
我已经在注册表中启用了NatVis调试,我可以看到调试器正在加载我的.natvis文件并成功解析。
我也关闭了编辑并继续。
然而,当我调试代码并检查StringChecksum时,我没有看到任何差异,它显示整数。我希望它能显示出类似&#34; StringChecksum 3433&#34;。
NatVis是否可以使用普通typedef定义的类型?我见过的所有例子都在使用类。如果是这样,任何想法可能是错的?
答案 0 :(得分:2)
答案是肯定的。调试器无法区分原始类型。
有趣的是,即使调试器实际上可以说明差异,枚举甚至强类型枚举目前也无法在VS2012 Update 2中运行。