4

在我的公司,我们正在使用原生可视化工具(.natvis 文件)来调试 Visual Studio 中的内存转储。

由于我们对不同的项目有相同的类名,我们正在考虑在项目定义中包含 .natvis 文件,这似乎是可行的:.natvis 文件在构建期间嵌入到符号文件 (*.pdb) 中,这是一件好事。

不幸的是,现在似乎不可能进行任何自定义:从两个 .natvis 文件(PC 上的文件和符号文件中的文件)中,符号文件中的一个优先,这使得它无法更改,因此似乎没有自定义可能了。

为了拥有可定制的 .natvis 文件,我们正在考虑更改 .natvisreload 序列。这是可能的还是有另一种方法(比如向.natvisreload命令添加参数)?

4

1 回答 1

3

我的问题似乎无法回答,正如我刚刚在我的 PC 上找到的 natvis 架构中所述:

作为已加载项目一部分的 natvis 文件将始终优先于用户 natvis 目录中的文件

似乎可以在同一个 natvis 文件中区分不同的解决方案(应用程序),如您在此处看到的:

  <!-- Solution1 -->
  <Type Name="Class_Name">
    <Version Name="Solution1.exe" Min="1.0" Max="99.99"/>
    <DisplayString>Class_Name Solution1 {m_strName}, {m_iID} </DisplayString>
  </Type>

  <!-- Solution2 -->
  <Type Name="Class_Name"> // in Solution2 Class_Name has no strName
    <Version Name="Solution2.exe" Min="1.0" Max="99.99"/>
    <DisplayString>Class_Name Solution2 identifier {m_iID}</DisplayString>
  </Type>
于 2017-11-22T08:06:36.710 回答