スレッドの構文

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

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

スレッド識別子 説明

~.

現在のスレッド。

~#

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

~*

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

~~

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

~~[~~]

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

~[~]

スレッド ID が数値 の解決に使用される整数であるスレッド。

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

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

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

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

制御 (カーネルモードでスレッドを)

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

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