【问题标题】:User defined natvis files in Visual Studio 2012Visual Studio 2012 中用户定义的 natvis 文件
【发布时间】:2013-07-22 14:35:11
【问题描述】:

我正在尝试在我的项目中使用新的调试可视化工具,但 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 文件运行良好。所以我试图从Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers 中删除一个预装的natvis 文件:stl.natvis,但Visual Studio 仍然显示vector,就好像它可以访问stl.natvis 文件一样。有人知道如何解决这个问题吗? Visual Studio 是否有任何其他位置可以从中加载 natvis 文件?也许有一个注册表项?

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

【问题讨论】:

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


    【解决方案1】:

    我终于想通了。启用 Edit and Continue 时,Natvis 可视化工具不起作用。

    【讨论】:

    • 感谢发帖。在找到您的答案之前,这让我感到非常沮丧。
    • 谢谢你,你给了一盏灯!
    • 我仍然有 qt5.natvis 的问题。不幸的是,技巧对我不起作用。
    • 如果是这种情况,那么我想知道是什么魔法使 stl 即使在编辑和继续时也总是启用自己的 natvis?
    【解决方案2】:

    我遇到了同样的问题。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-11-24
        • 1970-01-01
        • 2017-03-03
        • 1970-01-01
        • 1970-01-01
        • 2012-09-26
        • 2016-07-09
        • 1970-01-01
        • 2022-12-07
        相关资源
        最近更新 更多