.kill (Kill Process)
在使用者模式中,.kill 命令會結束正在偵錯的進程。
在核心模式中,.kill 命令會結束目標計算機上的進程。
使用者模式語法
.kill [ /h | /n ]
內核模式語法
.kill Process
參數
/h
(僅限使用者模式)任何未處理的偵錯事件都會繼續,並標示為已處理。 這是預設值。
/n
(僅限使用者模式)任何未處理的偵錯事件都會繼續執行,而不會標示為已處理。
過程
指定要終止之進程的位址。 如果 省略 Process 或零,則會終止目前系統狀態的默認進程。
Environment
在核心模式中,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 和更新版本中支援的版本:(核心模式)。 |