.kill(终止进程)

在用户模式下, .kill 命令将结束正在调试的进程。

在内核模式下, .kill 命令结束目标计算机上的进程。

User-Mode语法

.kill [ /h | /n ]

Kernel-Mode语法

.kill Process 

参数

/h
(用户模式) 任何未完成的调试事件都将继续并标记为已处理。 这是默认值。

/n
(用户模式仅) 任何未完成的调试事件将继续,而不会标记为已处理。

过程
指定要终止的进程地址。 如果省略 进程 或零,则当前系统状态的默认进程将终止。

环境

在内核模式下,Microsoft Windows Server 2003 及更高版本的 Windows 支持此命令。

模式

用户模式、内核模式

目标

仅实时调试

平台

all

注解

在用户模式下,此命令将结束正在调试的进程。 如果调试器附加到子进程,则可以使用 .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。 第一行开头的点 (.) 告诉我们,父进程是当前进程。 若要使子进程成为当前进程,请输入 |1。

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 Command-Line选项CDB Command-Line选项

要求

版本

版本: (Windows Server 2003 及更高版本中支持的内核模式) 。