~e (スレッド固有のコマンド)
~e コマンドは、ターゲット プロセス内の特定のスレッドまたはすべてのスレッドに対して 1 つ以上のコマンドを実行します。
このコマンドを e (値の入力) コマンドと混同しないでください。
~Thread e CommandString
パラメーター
Thread
デバッガーが CommandString を実行するスレッドを指定します。 構文の詳細については、「スレッド構文」を参照してください。
CommandString
実行する 1 つ以上のコマンドを指定します。 複数のコマンドはセミコロンを使用して区切る必要があります。 CommandString には入力行の残りの部分が含まれます。 文字「e」に続くテキストはすべて、この文字列の一部として解釈されます。 CommandString を引用符で囲まないでください。
Environment
項目 | 説明 |
---|---|
モード | ユーザー モードのみ |
目標値 | ライブ、クラッシュ ダンプ |
プラットフォーム | すべて |
追加情報
スレッドを制御するその他のコマンドの詳細については、「プロセスとスレッドの制御」を参照してください。
解説
スレッドは、ユーザー モードでのみ指定できます。 カーネル モードでは、チルダ (~) はプロセッサを指します。
~e コマンドを 1 つのスレッドと一緒に使用する場合、~e コマンドは入力の一部のみを節約します。 たとえば、次の 2 つのコマンドは同等です。
0:000> ~2e r; k; kd
0:000> ~2r; ~2k; ~2kd
ただし、~e 修飾子を使用すると、コマンドまたは拡張コマンドを複数回繰り返すことができます。 この方法で修飾子を使用すると、余分な入力を省略できます。 たとえば、次のコマンドは、デバッグしているスレッドごとに !gle 拡張コマンドを繰り返します。
0:000> ~*e !gle
1 つのコマンドの実行でエラーが発生した場合、次のコマンドの実行が続行されます。
~e 修飾子を実行コマンド (g, gh, gn, gN, gu, p, pa, pc, t, ta, tb, tc, wt) と一緒に使用することはできません。
~e 修飾子を j (Execute If-Else) または z (Execute While) 条件付きコマンドと一緒に使用することはできません。
複数のプロセスをデバッグしている場合、~e コマンドを使用して非アクティブなプロセスの仮想メモリ空間にアクセスすることはできません。