1. ホーム
  2. c#

[解決済み】Visual Studioでシングルスレッドをデバッグする方法は?

2022-04-03 23:37:51

質問

私はいくつかのプロジェクトでソリューションを持っています。異なるプロジェクトには、いくつかのブレークポイントがあります。私はこれらのブレークポイントの1つにヒットした最初のスレッドをトレースし、他のスレッドが同じコードブロックに入るにもかかわらず、その単一のスレッドをトレースし続けたいと考えています。

スレッド名=...、スレッドID=...というように、ブレークポイントに条件を定義することで可能なのは知っていますが、私の場合は負荷が大きいので、このようなことはできません。 ASP.NET アプリケーションにアタッチすると、すぐに w3wp.exe 多くのスレッドがブレークポイントにヒットします。私は ThreadLocal<break-point> .

それは可能ですか?もしそうなら、どのように?

解決方法は?

スレッドの凍結/解凍は、他のスレッドがコードを実行しないため、誤った方法です。

最も正しく、使える方法です。

  1. ブレークポイントウィンドウでCtrl+Aを押す(すべてのブレークポイントを選択する)。
  2. 右クリックして、"Filter..."を選択します。
  3. ThreadId=(現在のスレッドID)"を入力します。

ビジュアルスタジオ2015 以降も同様の手順となります。

  1. ブレークポイントウィンドウでCtrl+Aを押す(すべてのブレークポイントを選択する)。
  2. 右クリックして、quot;Settings..."を選択します。
  3. 条件」をチェックし、ドロップダウンから「フィルタ」を選択します。
  4. ThreadId=(現在のスレッドID)"と入力します。

つまり、すべてのスレッドが実行されますが、デバッガは現在のスレッドにのみヒットします。