Поделиться через


.kill (Kill Process)

В пользовательском режиме команда .kill завершает процесс отладки.

В режиме ядра команда .kill завершает процесс на целевом компьютере.

Синтаксис пользовательского режима

.kill [ /h | /n ]

Синтаксис режима ядра

.kill Process 

Параметры

/h
(Только в пользовательском режиме) Любое выдающееся событие отладки будет продолжено и отмечено как обработанное. Это значение по умолчанию.

/n
(Только в пользовательском режиме) Любое выдающееся событие отладки будет продолжено без пометки как обработанное.

Процесс
Указывает адрес процесса, который необходимо завершить. Если процесс опущен или ноль, процесс по умолчанию для текущего состояния системы будет завершен.

Среда

В режиме ядра эта команда поддерживается в 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 -o Parent.exe

Дополнительные сведения см. в разделе "Параметры командной строки WinDbg" и "Параметры командной строки CDB".

Требования

Версия

Версии:(Режим ядра) поддерживается в Windows Server 2003 и более поздних версиях.