多くのデバッガー コマンドには、パラメーターとしてスレッド識別子があります。 スレッド識別子の前にチルダ ( ~ ) が表示されます。
スレッド識別子には、次のいずれかの値を指定できます。
Thread identifier | Description |
---|---|
~. |
現在のスレッド。 |
~# |
現在の例外またはデバッグ イベントの原因となったスレッド。 |
~* |
プロセス内のすべてのスレッド。 |
~ Number |
The thread whose index is Number. |
~~[TID] |
The thread whose thread ID is TID. (角かっこは必須です。2 番目のチルダと開始角かっこの間にスペースを追加することはできません)。 |
~[Expression] |
The thread whose thread ID is the integer to which the numerical Expression resolves. |
スレッドは、作成時にインデックスが割り当てられます。 この数は、Microsoft Windows オペレーティング システムで使用されるスレッド ID とは異なります。
デバッグが開始されると、現在のスレッドは、現在の例外またはデバッグ イベント (またはデバッガーがプロセスにアタッチされている場合はアクティブなスレッド) を引き起こしたスレッドです。 ~ s (現在 のスレッドの設定) コマンドを使用するか、WinDbg の [プロセスとスレッド] ウィンドウ を使用して新しいスレッドを指定するまで、そのスレッドは現在のスレッドのままです。
通常、スレッド識別子はコマンド プレフィックスとして表示されます。 スレッド識別子を使用するすべてのコマンドですべてのワイルドカード文字を使用できるわけではないことに注意してください。
An example of the ~[Expression] syntax would be ~[@$t0]
. この例では、ユーザー定義の擬似レジスタの値に応じてスレッドが変更されます。 この構文により、デバッガー スクリプトはプログラムでスレッドを選択できます。
カーネル モードでのスレッドの制御
カーネル モードでは、スレッド識別子を使用してスレッドを制御することはできません。 For more information about how to access thread-specific information in kernel mode, see Changing Contexts.
Note You can use the tilde character ( ~ ) to specify threads during user-mode debugging. カーネル モード デバッグでは、チルダを使用してプロセッサを指定できます。 For more information about how to specify processors, see Multiprocessor Syntax.