.kill(终止进程)

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

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

User-Mode 语法

.kill [ /h | /n ]

Kernel-Mode 语法

.kill Process 

参数

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

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

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

环境

在内核模式下,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。 第一行开头的点 (.) 告诉我们父进程是当前进程。 若要使子进程成为当前进程,请输入 |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 Command-Line 选项CDB Command-Line 选项

要求

版本

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