NatVis:允许typedef?

时间:2014-03-24 22:49:07

标签: visual-studio-2012 natvis

我的类型定义为:

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定义的类型?我见过的所有例子都在使用类。如果是这样,任何想法可能是错的?

1 个答案:

答案 0 :(得分:2)

答案是肯定的。调试器无法区分原始类型。

有趣的是,即使调试器实际上可以说明差异,枚举甚至强类型枚举目前也无法在VS2012 Update 2中运行。