如何防止Visual Studio调试器可视化器超时?

时间:2009-04-24 19:57:58

标签: visual-studio debugging debuggervisualizer

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

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

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

我已经创建了一个自定义对象源,将序列化限制为我需要显示的字段。如果没有超时,我还能做些什么才能使数据反序列化?

3 个答案:

答案 0 :(得分:41)

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger

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

答案 1 :(得分:5)

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

  

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

答案 2 :(得分:0)

使Visual Studio调试器运行良好 - "本地人"窗口在" WPF可视化器" (在WPF应用程序中测试),您需要在注册表中找到: HKEY_CURRENT_USER \软件\微软\ VisualStudio的\ 12.0 \调试\ DWORD参数" LocalsTimeout"默认值(1000)设置为足够大的值,例如5000。