5

我有一个类型定义为:

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 时,我看不到任何区别,它显示的是整数。我希望它会显示类似“StringChecksum 3433”的内容。

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

4

1 回答 1

3

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

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

于 2014-04-04T16:49:02.293 回答