.kill(终止进程)

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

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

用户模式语法

.kill [ /h | /n ]

内核模式语法

.kill Process 

参数

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

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

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

环境

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

模式

用户模式、内核模式

目标

仅限实时调试

平台

全部

注解

在用户模式下,此命令将结束正在调试的进程。 如果调试器附加到子进程,则可以使用 .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 命令行选项CDB 命令行选项

要求

版本

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