【问题标题】:How to keep Visual Studio debugger visualizers from timing out?如何防止 Visual Studio 调试器可视化工具超时?
【发布时间】:2009-04-24 19:57:58
【问题描述】:

我已经成功制作了几个 Visual Studio 调试器可视化工具,它们运行良好,除了在某些对象上,当我尝试使用 objectProvider.GetObject() 反序列化对象时出现超时错误

System.Exception: Function evaluation timed out.
  at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.MaybeDeserializeAndThrowException(Byte[] data)

超时发生得相当快(可能在我单击可视化工具图标后大约一秒钟),即使我的其他一些可视化工具工作正常,即使显示的数据对象要长得多(5-10 秒)并且仍然不要超时。

我已经制作了一个自定义对象源,以将序列化限制为我需要显示的字段。我还能做些什么来让数据反序列化而不会超时?

【问题讨论】:

  • 注意:我会将此作为评论发布,但没有足够的声誉。接受的答案非常适合旧版本的 Visual Studio。对于我的版本(2017 年),我还需要一个单独的堆栈溢出帖子以及此处的答案以使其正常工作。 2017 将其 reg 密钥私下存储在 AppData 中,您需要将其加载到注册表编辑器中才能遵循本文接受的答案中的建议。这是另一个帖子的链接:stackoverflow.com/questions/41119996/…

标签: visual-studio debugging debuggervisualizer


【解决方案1】:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger

我认为这没有记录,但您可以尝试更改上述注册表项中的一些超时,然后重新启动 Visual Studio。

【讨论】:

  • 看起来NormalEvalTimeout 是要更改的值(值以毫秒为单位指定)。如果您使用此功能,QuickwatchTimeout 也值得更新(将鼠标悬停在调试器中的变量上以查看它的当前值)。如果您需要恢复它们,这些值的默认值分别为 5000 和 15000。
  • 与其他注册表项一样,请确保 Visual Studio 已关闭(没有运行 devenv 进程),否则 VS 将在您退出时覆盖该值!
  • 我正在 VS2017 中寻找这个,但在任何版本文件夹下都没有。
  • VS2019 的类似问题 - 这个设置移到哪里了?
【解决方案2】:

我最近在 VS2012 中遇到了这个问题,谷歌搜索后我找到了this

正如异常消息所说,这个异常意味着调试器 数据表的可视化工具超时。在 VS 调试器中,每个 表达式评估窗口(例如观察窗口、本地窗口、 datatips, autos window etc..) 有不同的默认最大表达式 评估超时值。对于数据提示,我们更愿意给出一个简短的 超时值,否则它将提供一个糟糕的用户 表达。如果您确实想使用可视化功能 该数据表,您可以将表达式添加到手表并尝试 可视化它。(因为监视窗口具有更长的超时值)。如果你 确实想摆脱数据提示中的此超时,您可以尝试增加 数据提示的超时值。超时值是一个设置 “DataTipTimeout”注册表项下: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger 注意: 您应该为 64 位操作系统探测 WOW64Node。还可以查看其他 该键下windows的默认超时值。

【讨论】:

    【解决方案3】:

    要让 Visual Studio 调试器正常工作 - “WPF 可视化工具”中的“Locals”窗口(在 WPF 应用程序中测试),您需要在注册表中找到: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\ DWORD 参数“LocalsTimeout”和默认值 (1000) 设置为足够大的值,例如 5000。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 2010-09-10
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      相关资源
      最近更新 更多