スレッドの構文

多くのデバッガー コマンドには、パラメーターとしてスレッド識別子があります。 スレッド識別子の前にはチルダ ( ~ ) が表示されます。

スレッド識別子には次のいずれかの値を指定することができます。

スレッド識別子 説明

~.

現在のスレッド。

~#

現在の例外またはデバッグ イベントの原因となったスレッド。

~*

プロセス内のすべてのスレッド。

~番号

インデックスが Number であるスレッド。

~~[TID]

スレッド ID が TID であるスレッド。 (角かっこは必須であり、2 番目のチルダ (~) と開始角かっこの間にスペースを追加することはできません)。

~[Expression]

スレッド ID が、数値の Expression が解決される整数であるスレッド。

スレッドは、作成時にインデックスが割り当てられます。 この数は、Microsoft Windows オペレーティング システムで使用されるスレッド ID とは異なることに留意してください。

デバッグが開始されると、現在のスレッドは、現在の例外またはデバッグ イベントの原因となったスレッド (またはデバッガーがプロセスにアタッチしたときのアクティブ スレッド) です。 ~s (現在のスレッドの設定) コマンドを使用するか、WinDbg の [プロセスとスレッド] ウィンドウを使用して新しいスレッドを指定するまで、このスレッドが現在のスレッドのままになります。

通常、スレッド識別子はコマンド プレフィックスとして表示されます。 スレッド識別子を使用するすべてのコマンドで、すべてのワイルドカード文字を使用できるわけではないことに注意してください。

~[Expression] 構文の例は ~[$@t0] です。 この例では、ユーザー定義の擬似レジスタの値に応じてスレッドが変更されます。 この構文により、デバッガー スクリプトはプログラムでスレッドを選択できます。

カーネル モードでのスレッドの制御

カーネル モードでは、スレッド識別子を使用してスレッドを制御することはできません。 カーネル モードでスレッド固有の情報にアクセスする方法について詳しくは、「コンテキストの変更」を参照してください。

チルダ文字 ( ~ ) を使用して、ユーザー モード デバッグ中にスレッドを指定できます。 カーネル モード デバッグでは、チルダを使用してプロセッサを指定できます。 プロセッサを指定する方法の詳細については、「マルチプロセッサの構文」を参照してください。