用户在Visual Studio 2012中定义的natvis文件

时间:2013-07-23 13:29:50

标签: c++ visual-studio-2012 debuggervisualizer natvis

我正在尝试在我的项目中使用新的调试可视化工具,但Visual Studio发生了一些事情,它不再接收我的natvis文件。我尝试将它们复制到%USERPROFILE%\My Documents\Visual Studio 2012\Visualizers以及\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers,但它仍然失败。

它在一周前确实有效,但从那以后出现了一些问题。

我尝试修复Visual Studio但它没有帮助。

我尝试在注册表中启用EnableNatvisDiagnostics,但我没有在Output window中收到任何诊断消息。

预先安装的natvis文件工作正常。因此,我尝试从stl.natvis中删除其中一个预安装的natvis文件:Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers,但Visual Studio仍然显示vector,好像它可以访问stl.natvis文件一样。有人知道如何解决这个问题吗? Visual Studio是否还有其他位置加载natvis文件?也许有一个注册表项?

PS。我尝试使用ProcessMonitor找出Visual Studio加载natvis文件的位置,但我在ProcessMonitor的日志中找不到任何引用。

3 个答案:

答案 0 :(得分:16)

我终于弄明白了。 Edit and Continue时,Natvis可视化工具无效。

答案 1 :(得分:4)

我遇到了同样的问题。

检查工具 - >选项 - >调试 - >常规 - > 在变量窗口中显示对象的原始结构。 它应该被禁用。

答案 2 :(得分:0)

我刚刚意识到,如果使用ReSharper Test Runner调试测试,则不会使用自定义NatVis文件(%USERPROFILE%\Documents\Visual Studio 201x\Visualizers中的文件)。然而,内置的,例如std::vector正在发挥作用。

如果您定期运行测试(例如调试 - > 开始调试,可能是F5),您的自定义NatVis文件将被加载并使用。