【问题标题】:Using <CustomVisualizer> tag with natvis将 <CustomVisualizer> 标记与 natvis 一起使用
【发布时间】:2014-02-26 21:04:28
【问题描述】:

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

【问题讨论】:

  • 魔法 GUID 有什么进展吗?我正在尝试做同样的事情。
  • 是的,我基本上想通了。非常困难。解释太复杂了,所以这里有一些来源。 github.com/chromium/vs-chromium

标签: c++ visual-studio visual-studio-2013 visual-studio-debugging vs-extensibility


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    想通了。您可以在https://github.com/chromium/vs-chromium查看源代码

    TL;DR - 涉及大量工作,我可能做错了一些事情,这并不容易。

    【讨论】:

      【解决方案3】:

      我不知道如何使用CustomVisualizer,但也许使用LegacyAddin 的可视化工具可以解决您的问题https://stackoverflow.com/a/11545420/61505

      【讨论】:

        猜你喜欢
        • 2020-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-21
        • 2019-04-21
        • 1970-01-01
        • 1970-01-01
        • 2014-04-05
        相关资源
        最近更新 更多