10

問題:
デバッガーでトレースポイントを解除または設定しようとすると、アプリケーションとVisualStudioが完全にフリーズします。デバッガーをデタッチした後、アプリケーションは続行します。

この問題は、おそらくWPFに関連しています。WinFormアプリケーションをWPFに移行しました。それ以来、この問題が発生します。しかし、問題の原因となっているコードの特定の部分を見つけることができません。私はすでに何百ものコミットをロールバックしましたが、成功しませんでした。

UIスレッドにも関連している可能性があります。ブレークポイントがUIロジックから離れた場所に設定されている場合、アプリケーションはフリーズしないか、UIスレッドのどこかでフリーズするほど頻繁にはフリーズしません。

[編集: ]
VisualStudio2010でWindows7.64ビットを使用しています

[更新: ]
Visual Studioがハングし、ブレークポイントが表示される前にデタッチしようとすると、「1つ以上のプロセスからデタッチできません。すべての未処理の機能が完了していません」というメッセージが表示されます。しかし、デバッグオプションですべての関数評価を無効にしました。私の問題は、func_evaluationが完了できないか、タイムアウトが発生したことが原因だと思います。

どのfunc_evaluationビジュアルスタジオがぶら下がっているのかを確認する方法はありますか?

例:

class SomeUiViewPresenterExample
{
   private Timer m_Timer;

public void Init()
{
    m_Timer = new Timer();
    m_Timer.Elapsed += ElapsedFoo();
    m_Timer.AutoReset = false;
    m_Timer.Interval = 200;
}

private void ElapsedFoo(object sender, ElapsedEventArgs elapsedEventArgs)
{
    // there is no code inside this method
    // On the next line a trace point with "---> ElapsedFoo called" will freeze the debugger
}

私がすでに試したこと:(成功せずに)

  • ホストプロセスを有効/無効にする
  • x86およびx64プロセスをデバッグしようとしました
  • /SafeModeでビジュアルスタジオを立ち上げました
  • NGENアップデート
  • デバッグオプションで「プロパティ評価およびその他の暗黙的な関数呼び出し」を無効にしました
  • 無効なシンボルサーバー
  • シンボルの読み込みを無効にしました
  • WPFフォントキャッシュを削除しました
  • 'DebuggerDisplay( "式のないテキスト")'でいくつかのUI要素をマークしました

チケットMicrosoft Connect

おそらく関連する問題:

私たちのアプリケーションは.NETRemotingを使用して別のプロセスと通信するため、私の問題はここに似たものになる可能性があります。リモートイベントへのすべての登録を独自のタスクに配置しましたが、成功しませんでした。

デバッグされたビジュアルスタジオからのデバッガー出力:

Visual Studioにデバッガーを接続し、いくつかの例外を確認しました(80010005)

しかし、それらが私の問題に関連しているかどうかはわかりません。

(18d8.1708): C++ EH exception - code e06d7363 (first chance)
(18d8.1708): C++ EH exception - code e06d7363 (first chance)
..... // snip
(18d8.18dc): **Unknown exception - code 80010005 (first chance)
..... // 20 seconds freeze until breakpoint hit in IDE

(18d8.18dc): Unknown exception - code 80010005 (first chance)
(18d8.18dc): C++ EH exception - code e06d7363 (first chance)
ModLoad: 365f0000 36665000 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\mcee.dll

// after continue execution debugger and debugged process freezes forever

(18d8.18dc): Unknown exception - code 80010005 (first chance)
ModLoad: 00000000`02b90000 00000000`02c1c000 C:\Windows\SysWOW64\UIAutomationCore.dll
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
4

3 に答える 3

1

これを見れば見るほど、WPFタイマーを使用していないことが原因だと思います。WPFディスパッチャータイマーではなく通常のTimerクラスを使用しようとすると、UI以外のスレッドでUIを更新しようとするリスクがあります。これは、問題の原因となる可能性があります(DataContextは技術的にはUI)。

詳細はこちら:

DispatcherTimerとタスクスケジューラのWPFアプリの通常のタイマー

于 2013-02-07T16:00:42.953 に答える
1

以下のURLからwindebugツールを使用して、デバッグを改善し、ソリューションを整理することができます

http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx

于 2013-02-07T16:08:35.840 に答える
1

ヒントをありがとう。最後にVS2012をインストールしましたが、デバッガーは通常どおり動作します。VisualStudio2010デバッガーには本当にバグ/パフォーマンスの問題があるようです。

于 2013-02-26T13:02:58.107 に答える