.kill (プロセスの強制終了)

ユーザー モードでは、 .kill コマンドはデバッグ中のプロセスを終了します。

カーネル モードでは、 .kill コマンドはターゲット コンピューター上のプロセスを終了します。

ユーザーモードの構文

.kill [ /h | /n ]

カーネルモード構文

.kill Process 

パラメーター

/h
(ユーザー モードのみ) 未処理のデバッグ イベントは続行され、処理済みとしてマークされます。 これが既定です。

/n
(ユーザー モードのみ) 未解決のデバッグ イベントは、処理済みとしてマークされずに続行されます。

Process
終了するプロセスのアドレスを指定します。 Process が省略されるかゼロの場合、現在のシステム状態のデフォルトのプロセスが終了します。

環境

カーネル モードでは、このコマンドは 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 以降でサポートされています。