簡體   English   中英

如何避免Visual Studio調試器可視化程序超時?

[英]How to keep Visual Studio debugger visualizers from timing out?

我已經成功制作了多個Visual Studio調試器可視化程序,它們運行得很好,除了在某些對象上嘗試使用objectProvider.GetObject()反序列化對象時出現超時錯誤。

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

超時發生得非常快(大約在我單擊可視化器圖標后大約一秒鍾),即使我的某些其他可視化器也可以正常工作,即使大型數據對象的顯示時間更長(5-10秒),但仍然無法超時。

我已經制作了一個自定義對象源,以將序列化限制為我需要顯示的字段。 我還可以做些什么來使數據反序列化而不超時呢?

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger

我認為這沒有記錄,但是您可以嘗試更改上述注冊表項中的某些超時,然后重新啟動Visual Studio。

我最近在VS2012中受到此攻擊,在谷歌搜索后發現了這一點

如異常消息所示,此異常意味着數據表的調試器可視化程序已超時。 在VS調試器中,每個表達式評估窗口(例如監視窗口,本地窗口,數據提示,自動窗口等)具有不同的默認最大表達式評估超時值。 對於datatip,我們希望提供一個較短的超時值,因為否則將提供較差的用戶表達。 如果確實要對該數據表使用可視化工具功能,則可以將表達式添加到手表中,然后嘗試對其進行可視化(因為手表窗口的超時值更長)。 如果您確實想擺脫datatip中的該超時,則可以嘗試增加datatip的超時值。 超時值是“ DataTipTimeout”注冊表項中的一項設置,位於以下位置:HKEY_CURRENT_USER \\ Software \\ Microsoft \\ VisualStudio \\ 10.0 \\ Debugger注:您應針對64位OS探測WOW64Node。 您還可以在此鍵下查看其他窗口的默認超時值。

要使Visual Studio調試器正常工作-在“ WPF可視化工具”中的“本地”窗口(在WPF應用程序中經過測試),您需要在注冊表中找到:HKEY_CURRENT_USER \\ Software \\ Microsoft \\ VisualStudio \\ 12.0 \\ Debugger \\ DWORD參數“ LocalsTimeout”和默認值(1000)設置為足夠大的值,例如5000。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM