スレッドの構文
多くのデバッガー コマンドには、パラメーターとしてスレッド識別子があります。 スレッド識別子の前にはチルダ ( ~ ) が表示されます。
スレッド識別子には次のいずれかの値を指定することができます。
スレッド識別子 | 説明 |
---|---|
~. |
現在のスレッド。 |
~# |
現在の例外またはデバッグ イベントの原因となったスレッド。 |
~* |
プロセス内のすべてのスレッド。 |
~番号 |
インデックスが Number であるスレッド。 |
~~[TID] |
スレッド ID が TID であるスレッド。 (角かっこは必須であり、2 番目のチルダ (~) と開始角かっこの間にスペースを追加することはできません)。 |
~[Expression] |
スレッド ID が、数値の Expression が解決される整数であるスレッド。 |
スレッドは、作成時にインデックスが割り当てられます。 この数は、Microsoft Windows オペレーティング システムで使用されるスレッド ID とは異なることに留意してください。
デバッグが開始されると、現在のスレッドは、現在の例外またはデバッグ イベントの原因となったスレッド (またはデバッガーがプロセスにアタッチしたときのアクティブ スレッド) です。 ~s (現在のスレッドの設定) コマンドを使用するか、WinDbg の [プロセスとスレッド] ウィンドウを使用して新しいスレッドを指定するまで、このスレッドが現在のスレッドのままになります。
通常、スレッド識別子はコマンド プレフィックスとして表示されます。 スレッド識別子を使用するすべてのコマンドで、すべてのワイルドカード文字を使用できるわけではないことに注意してください。
~[Expression] 構文の例は ~[$@t0]
です。 この例では、ユーザー定義の擬似レジスタの値に応じてスレッドが変更されます。 この構文により、デバッガー スクリプトはプログラムでスレッドを選択できます。
カーネル モードでのスレッドの制御
カーネル モードでは、スレッド識別子を使用してスレッドを制御することはできません。 カーネル モードでスレッド固有の情報にアクセスする方法について詳しくは、「コンテキストの変更」を参照してください。
注 チルダ文字 ( ~ ) を使用して、ユーザー モード デバッグ中にスレッドを指定できます。 カーネル モード デバッグでは、チルダを使用してプロセッサを指定できます。 プロセッサを指定する方法の詳細については、「マルチプロセッサの構文」を参照してください。