web-dev-qa-db-ja.com

Visual Studioデバッガービジュアライザーがタイムアウトしないようにするにはどうすればよいですか?

いくつかのVisualStudioデバッガービジュアライザーを正常に作成しましたが、オブジェクトをobjectProvider.GetObject()で逆シリアル化しようとすると、一部のオブジェクトでタイムアウトエラーが発生することを除いて、非常にうまく機能しています。

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

他のビジュアライザーの一部は、表示にはるかに長い(5〜10秒)大きなデータオブジェクトでも正常に機能し、それでも機能しない場合でも、タイムアウトはかなり迅速に発生します(ビジュアライザーアイコンをクリックしてから約1秒後)。タイムアウト。

シリアル化を表示する必要のあるフィールドに制限するカスタムオブジェクトソースをすでに作成しました。タイムアウトせずにデータを逆シリアル化するには、他に何ができますか?

34
yoyoyoyosef
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger

これは文書化されていないと思いますが、上記のレジストリキーのタイムアウトの一部を変更して、VisualStudioを再起動してみてください。

43
Ying

私は最近VS2012でこれに見舞われ、グーグルした後、私は見つけました this

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

5
ldam

Visual Studioデバッガーが正常に機能するために-「WPFビジュアライザー」(WPFアプリケーションでテスト済み)の「ローカル」ウィンドウは、レジストリで見つける必要があります:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\DWORDパラメーター「LocalsTimeout」とデフォルト値(1000)十分な大きさの値、たとえば5000に設定します。

0
ARS one -