.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 及更高版本中) 支持的内核模式 (。 |