2009-04-24 52 views
34

私はobjectProvider.GetObject()Visual Studioデバッガのビジュアライザのタイムアウトを防ぐには?

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

時間を持つオブジェクトをデシリアライズしようとすると、エラーが時間を出す私は正常にいくつかのVisual Studioデバッガビジュアライザを作った、と彼らはいくつかのオブジェクトのことを除いて、非常によく働いています私の他のビジュアライザーのいくつかは表示時間が長く(5〜10秒)、それでもタイムアウトしない大きなデータオブジェクトであっても正常に動作しますが、ビジュアライザーアイコンをクリックした後には、

私は、表示する必要のあるフィールドへのシリアル化を制限するために、カスタムオブジェクトソースを既に作成しています。タイムアウトなしにデータを直列化解除するには、他に何ができますか?

答えて

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

これは記載されていませんが、上記のレジストリキーでタイムアウトの一部を変更してから、Visual Studioを再起動してみてください。

+24

'NormalEvalTimeout'は変更する値です(値はミリ秒単位で指定します)。 'QuickwatchTimeout'もこの機能を使用すると更新する価値があります(現在の値を表示するためにデバッガ内の変数をホバリングする)。これらの値のデフォルト値は、復元する必要がある場合はそれぞれ5000と15000です。 – alastairs

+3

他のレジストリキーと同様に、Visual Studioが閉じていることを確認してください( 'devenv'プロセスは実行されていません)。終了すると、VSは値を上書きします。 – ashes999

5

私は最近、VS2012でこのに見舞われたとグーグルでの後、私はthisが見つかりました:例外メッセージが言う

ように、この例外は、データテーブルのためのデバッガビジュアライザ がタイムアウトしていることを意味します。 VSデバッガでは、 の式評価ウィンドウ(ウォッチウィンドウ、ローカルウィンドウ、 データヒット、オートウィンドウなど)はそれぞれ、デフォルトの最大式 評価タイムアウト値が異なります。データチップの場合、短い のタイムアウト値を指定することをお勧めします。そうしないと、貧弱なユーザー の式が提供されるためです。 のビジュアライザ機能を使用する場合は、式を時計に追加して を視覚化してください(時計ウィンドウのタイムアウト値が長いため)。 datatipでこのタイムアウトを取り除きたい場合は、 をdatatipのタイムアウト値に増やしてみてください。タイムアウト値は、 の "DataTipTimeout"レジストリキーの設定です。 HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 10.0 \ Debugger注: 64ビットOSの場合、WOW64Nodeを調べる必要があります。このキーの下に他の ウィンドウのデフォルトのタイムアウト値も表示されます。ほかのVisual Studioデバッガの仕事に

0

- (WPFアプリケーションでテストした) "WPFビジュアライザ" の "ローカル" ウィンドウ、レジストリ内で検索する必要があります。 ます。HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudioを\ 12.0 \デバッガ\ DWORDパラメータ "LocalsTimeout"とデフォルト値(1000)は、たとえば5000などの十分大きな値に設定されます。

関連する問題