我正在尝试使用 natvis.xsd(natvis 模式文件)中定义的标记来编写 C# 或 C++ 代码来可视化类型。我找不到任何关于此的文档,所以我不确定它是如何工作的。特别是我需要为 CustomVisualizer 指定一个 GUID。这个 GUID 映射到什么?如何导出使用此 GUID 注册的类?我需要实现什么接口(interface)?简而言之,如何将我在 .natvis 文件中指定的 GUID 连接到格式化对象的代码?

natvis 的 documentation 没有提到 CustomVisualizer 标记的存在,但它在 natvis 模式文件中并显示在自动完成中。我发现 PyTools 似乎使用这种方法实现了 natvis 自定义可视化工具,但似乎某些代码被隐藏了,而且我无法使用这种方法找到实际的原生可视化工具的源代码。

这是我想要制作的示例 natvis 文件:

<?xml version="1.0" encoding="utf-8" ?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  <Type Name="MyCustomVisualizer">
    <CustomVisualizer VisualizerId="{387446F9-4B29-4EE7-A948-346BF6995603}"/>
  </Type>
</AutoVisualizer>

我特别询问如何编写 C# 和/或 C++ 代码来完成这项工作。

最佳答案

https://code.msdn.microsoft.com/Writing-graphical-debugger-a17e3d75

您想使用 UIVisualizer,而不是 CustomVisualizer。尽管 CustomVisualizer 出现在架构中,但似乎没有关于它的文档。使用 UIVisualizer,您可以在 watch View 中看到检查器窗口,它将启动可视化器。该链接中还讨论了与 UIVisualizer 相关的 GUID 的用法。

关于c++ - 在 natvis 中使用 <CustomVisualizer> 标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22053228/

10-10 11:34