現在のセッションで作成したスレッドは、すべて「デバッグ」ウィンドウに表示されます。「デバッグ」ウィンドウを開くには、「ウィンドウ」>「デバッグ」>「デバッグ」(Alt-Shift-9) を選択します。
常に 1 つのスレッドのみが、現在のスレッドになります。デフォルトでは、現在のセッション内でデバッガが制御を取得したスレッドが現在のスレッドです。デバッグするスレッドを切り替えると、「局所変数」ウィンドウが自動的に更新され、そのスレッドに適切なデータが反映されます。
現在のスレッドを変更する
スレッドに問題があると思われる場合は、そのスレッドの実行を中断し、問題を解決してから実行を再開することができます。「デバッグ」ウィンドウを使用すると、デバッグセッション内のスレッドを表示し、実行中または中断中のスレッドを簡単に確認できます。スレッド名の左側のアイコンで、そのスレッドが中断中または再開待ちのどちらであるかがわかります。
アプリケーションスレッドは、「デバッグ」ウィンドウでスレッドを右クリックしてポップアップメニューからアクションを選択することで、中断、割り込み、および再開できます。または、「デバッグ」ウィンドウの右側の「再開」() および「中断」(
) ボタンをクリックすることもできます。「再開」ボタンおよび「中断」ボタンは、「デバッグ」ウィンドウツールバーの「中断/再開の表を表示」ボタン (
) をクリックして非表示にすることができます。
ソースエディタの左マージンにあるスレッドアイコンは、その行に中断されているスレッドがあることを示します。次の表に、デバッグセッション中のソースエディタに表示されるスレッドの状態を表すアイコンを示します。
アイコン | 説明 |
---|---|
![]() |
その他の中断しているスレッド |
![]() |
ブレークポイントにヒットしたために中断しているその他のスレッド |
中断しているスレッドを現在のスレッドに設定する
マルチスレッドのアプリケーションをデバッグするとき、特定のスレッドのステップが、ほかのスレッドで発生したブレークポイントによって中断されることがあります。この状態が発生した場合、IDE でスレッドを切り替えるオプションが表示されます。IDE では、コンテキストの新しいスレッドへの自動切換えは行われません。
別のスレッド内のブレークポイントにヒットした場合、「デバッグ」ウィンドウにパネルが表示され、通知されます。現在のスレッドは、明示的に切り替えるかスレッドが停止するまで、現在のスレッドのままになります。「デバッグ」ウィンドウのパネルの矢印をクリックすると、そのスレッドに切り替えるスレッドをいつでも選択できます。これにより、現在のスレッドのデバッグを続け、都合のよいときにブレークポイントにヒットしたスレッドに切り替えることができます。
スレッドが問題の原因であると思われ、さらに調べる必要がある場合は、IDE のソースエディタでスレッドのソースコードを表示できます。
スレッドのソースコードを表示する
スレッドのソースがある場合、ソースエディタは、そのスレッドの呼び出しスタック上の現在の呼び出しにジャンプします。