.kill (プロセスの強制終了)
ユーザー モードでは、 .kill コマンドはデバッグ中のプロセスを終了します。
カーネル モードでは、 .kill コマンドはターゲット コンピューター上のプロセスを終了します。
ユーザーモードの構文
.kill [ /h | /n ]
カーネルモード構文
.kill Process
パラメーター
/h
(ユーザー モードのみ) 未処理のデバッグ イベントは続行され、処理済みとしてマークされます。 これが既定です。
/n
(ユーザー モードのみ) 未解決のデバッグ イベントは、処理済みとしてマークされずに続行されます。
Process
終了するプロセスのアドレスを指定します。 Process が省略されるかゼロの場合、現在のシステム状態のデフォルトのプロセスが終了します。
Environment
カーネル モードでは、このコマンドは Microsoft Windows Server 2003 以降のバージョンの Windows でサポートされます。
モード |
ユーザー モード、カーネル モード |
Targets |
ライブ デバッグのみ |
プラットフォーム |
すべて |
解説
ユーザー モードでは、このコマンドはデバッグ中のプロセスを終了します。 デバッガーが子プロセスにアタッチされている場合は、 .kill を使用して、親プロセスを終了せずに子プロセスを終了できます。 詳細については、「例」を参照してください。
カーネル モードでは、このコマンドはターゲット コンピューター上で選択したプロセスの終了をスケジュールします。 次回ターゲットが実行できるようになったとき (たとえば、 g (Go) コマンドを使用したとき)、指定されたプロセスは終了します。
ローカル カーネルのデバッグ中にこのコマンドは使用できません。
例
.childdbgの使用
子プロセスを作成する前に、デバッガーを親プロセス (Parent.exe) にアタッチするとします。 コマンド .childdbg 1 を入力すると、親が作成する子プロセスに接続するようにデバッガーに指示できます。
1:001> .childdbg 1
Processes created by the current process will be debugged
次に、親プロセスを実行し、子プロセスの作成後に中断します。 | を使用します (プロセス ステータス) コマンドを使用して、親プロセスと子プロセスのプロセス番号を確認します。
0:002> |*
. 0 id: 7f8 attach name: C:\Parent\x64\Debug\Parent.exe
1 id: 2d4 child name: notepad.exe
上記の出力では、子プロセス (notepad.exe) の数は 1 です。 最初の行の先頭にあるドット (.) は、親プロセスが現在のプロセスであることを示しています。 子プロセスを現在のプロセスにするには、 |1sと入力します。
0:002> |1s
...
1:001> |*
# 0 id: 7f8 attach name: C:\Parent\x64\Debug\Parent.exe
. 1 id: 2d4 child name: notepad.exe
子プロセスを強制終了するには、コマンド .kill を入力します。 親プロセスは引き続き実行されます。
1:001> .kill
Terminated. Exit thread and process events will occur.
1:001> g
-o パラメータの使用
WinDbg または CDB を起動するときに、 -o パラメーターを使用して、子プロセスにアタッチする必要があることをデバッガーに指示できます。 たとえば、次のコマンドは WinDbg を起動し、これが起動して Parent.exe にアタッチされます。 Parent.exe が子プロセスを作成すると、WinDbg が子プロセスにアタッチされます。
Windbg -g -G -o Parent.exe
詳細については、「 WinDbg コマンドライン オプション そして WinDbg コマンドライン オプション.
要件
バージョン |
バージョン:(カーネルモード)Windows Server 2003 以降でサポートされています。 |