1

我正在使用一个在其树中包含 .natvis 的解决方案。工作流程要求我经常使用 devenv.exe 的/DebugExe 开关启动各种解决方案的可执行文件的调试会话。但是当以这种方式启动时,调试器不会使用 .natvis 文件。

我曾尝试将/Command 开关Add Existing Item command一起使用,但看起来由于调试的 .exe 不是正确的解决方案或项目,因此无法向其中添加任何内容(至少我失败了)。

所以问题是:有没有一种方法可以在 /DebugExe 会话中使用放置在任意路径中的 .natvis(而不是 VisualStudio 会自动使用它的用户配置文件)?

4

1 回答 1

1

您可以使用/NATVIS:filename将 .native 文件添加到 .pdb 文件中。它将 Natvis 文件文件名中定义的调试器可视化嵌入到LINK 生成的 PDB 文件中。

此外,您可以参考 Jack 提供的链接中的部署 .natvis 文件部分。我们还可以将 .natvis 文件添加到用户目录或系统目录。评估 .natvis 文件的顺序如下:

  1. 嵌入在您正在调试的 .pdb 中的 natvis 文件(除非加载的项目中存在同名文件)
  2. 作为已加载 C++ 项目或顶级解决方案项的一部分的 natvis 文件。这包括所有加载的 C++ 项目,包括类库,但不包括其他语言的项目(例如,您不能从 C# 项目加载 .natvis 文件)。对于可执行项目,您应该使用解决方案项来托管任何 .pdb 中尚不存在的 .natvis 文件,因为没有可用的 C++ 项目。
  3. 用户特定的 natvis 目录 (%USERPROFILE%\My Documents\Visual Studio 2015\Visualizers
  4. 系统范围的 Natvis 目录 (%VSINSTALLDIR%\Common7\Packages\Debugger\Visualizers)。这是复制随 Visual Studio 安装的 .natvis 文件的位置。如果您具有管理员权限,也可以将其他文件添加到此目录。
于 2017-11-14T01:43:21.497 回答