2009-04-24 72 views
34

我已經成功地提出了一些Visual Studio調試器可視化工具,和他們工作得很好,除了一些對象,我得到一個超時錯誤,當我嘗試用objectProvider.GetObject()如何防止Visual Studio調試器可視化器超時?

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

的時間反序列化對象(即使點擊可視化圖標後大概一秒鐘),儘管我的其他一些可視化工具也可以很好地工作,即使大數據對象顯示時間較長(5-10秒),仍然不會超時。

我已經做了一個自定義對象源來限制序列化到我需要顯示的字段。我還能做什麼來使數據在沒有超時的情況下反序列化?

回答

41
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger 

我認爲這沒有記錄,但您可以嘗試更改以上註冊表項中的某些超時,然後重新啓動Visual Studio。

+24

看起來像`NormalEvalTimeout`是要更改的值(以毫秒爲單位指定值)。如果您使用此功能,則QuickwatchTimeout也值得更新(懸停在調試器中的變量上以查看其當前值)。如果您需要恢復它們,這些值的默認值分別是5000和15000。 – alastairs 2010-10-20 14:42:58

5

我最近被這在VS2012命中和谷歌搜索後,我發現this

由於異常消息說,此異常意味着調試器 可視化的數據表上超時。在VS調試器中,每個 表達式評估窗口(例如觀察窗口,本地窗口, 數據提示,自動窗口等等)具有不同的默認最大表達式 評估超時值。對於數據提示,我們寧願給出短暫的 超時值,因爲否則它將提供差的用戶 表達式。如果您確實想要使用數據表的 的可視化功能,您可以將表達式添加到手錶,並嘗試使用 將其可視化(因爲觀察窗具有更長的超時值)。如果 確實希望擺脫datatip中的此超時,則可以嘗試增加數據提示的超時值 。超時值是在 「DataTipTimeout」註冊表項下的設置: HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 10.0 \ Debugger注意: 您應該爲64位操作系統探測WOW64Node。您還可以在此鍵下看到其他 窗口的默認超時值。

0

到Visual Studio調試工作做好 - 在 「WPF可視化」(在WPF應用程序進行測試),您需要在註冊表中找到 「機」 窗口: HKEY_CURRENT_USER \ SOFTWARE \微軟\ VisualStudio的\ 12.0 \調試\ 例如,DWORD參數「LocalsTimeout」和默認值(1000)設置爲足夠大的值,即5000。

相關問題