NatVis:允许typedef?

Col*_*ren 5 visual-studio-2012 natvis

我的类型定义为:

typedef unsigned short StringChecksum;
Run Code Online (Sandbox Code Playgroud)

我最终打算使用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>
Run Code Online (Sandbox Code Playgroud)

我已经在注册表中启用了NatVis调试,我可以看到调试器正在加载我的.natvis文件并成功解析.

我也关闭了编辑并继续.

但是,当我调试代码并检查StringChecksum时,我没有看到任何差异,它显示整数.我希望它能显示类似"StringChecksum 3433"的内容.

NatVis是否可以使用普通typedef定义的类型?我见过的所有例子都在使用类.如果是这样,任何想法可能是错的?

Col*_*ren 3

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

有趣的是,枚举甚至强类型枚举目前在 VS2012 Update 2 中也不起作用,尽管调试器实际上可以区分出差异。