我已成功制作了几个Visual Studio调试器可视化工具,并且它们工作得很好,除了在某些对象上我尝试使用objectProvider.GetObject()
反序列化对象时出现超时错误
System.Exception: Function evaluation timed out.
at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.MaybeDeserializeAndThrowException(Byte[] data)
超时发生的速度相当快(可能在我点击可视化图标后大约一秒钟),即使我的其他一些可视化工具工作正常,即使大型数据对象显示更长时间(5-10秒)仍然不要超时。
我已经创建了一个自定义对象源,将序列化限制为我需要显示的字段。如果没有超时,我还能做些什么才能使数据反序列化?
答案 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。