.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 及更高版本中受支持。 |