.kill (Prozess beenden)
Im Benutzermodus beendet der Befehl .kill einen Prozess, der gerade debugged wird.
Im Kernelmodus beendet der Befehl .kill einen Prozess auf dem Zielcomputer.
Benutzermodussyntax
.kill [ /h | /n ]
Kernelmodussyntax
.kill Process
Parameter
/h
(Nur im Benutzermodus) Alle ausstehenden Debug-Ereignisse werden fortgesetzt und als bearbeitet markiert. Dies ist die Standardeinstellung.
/n
(Nur im Benutzermodus) Alle ausstehenden Debug-Ereignisse werden fortgesetzt, ohne als bearbeitet markiert zu werden.
Prozess
Gibt die Adresse des zu beendenden Prozesses an. Wenn Process weggelassen wird oder Null ist, wird der Standardprozess für den aktuellen Systemzustand beendet.
Umgebung
Im Kernelmodus wird dieser Befehl von Microsoft Windows Server 2003 und späteren Versionen von Windows unterstützt.
Modi |
Benutzermodus, Kernelmodus |
Targets |
Nur Livedebugging |
Platforms |
Alle |
Hinweise
Im Benutzermodus beendet dieser Befehl einen Prozess, der gerade debugged wird. Wenn der Debugger mit einem untergeordneten Prozess verbunden ist, können Sie .kill verwenden, um den untergeordneten Prozess zu beenden, ohne den übergeordneten Prozess zu beenden. Weitere Informationen finden Sie unter Beispiele.
Im Kernelmodus wird mit diesem Befehl der ausgewählte Prozess auf dem Zielcomputer für die Beendigung vorgesehen. Wenn das Ziel das nächste Mal ausgeführt werden kann (z. B. mit dem Befehl g (Go)), wird der angegebene Prozess beendet.
Sie können diesen Befehl nicht während des lokalen Kernel-Debugging verwenden.
Beispiele
Verwendung von .childdbg
Angenommen, Sie hängen einen Debugger an den übergeordneten Prozess (Parent.exe) an, bevor dieser einen untergeordneten Prozess erstellt. Sie können den Befehl .childdbg 1 eingeben, um den Debugger anzuweisen, sich an jeden untergeordneten Prozess anzuhängen, den der übergeordnete Prozess erstellt.
1:001> .childdbg 1
Processes created by the current process will be debugged
Lassen Sie nun den übergeordneten Prozess laufen und greifen Sie ein, nachdem er den untergeordneten Prozess erstellt hat. Verwenden Sie den Befehl | (Prozessstatus), um die Prozessnummern für die über- und untergeordneten Prozesse anzuzeigen.
0:002> |*
. 0 id: 7f8 attach name: C:\Parent\x64\Debug\Parent.exe
1 id: 2d4 child name: notepad.exe
In der vorangehenden Ausgabe ist die Nummer des untergeordneten Prozesses (notepad.exe) 1. Der Punkt (.) am Anfang der ersten Zeile sagt uns, dass der übergeordnete Prozess der aktuelle Prozess ist. Um den untergeordneten Prozess zum aktuellen Prozess zu machen, geben Sie |1s ein.
0:002> |1s
...
1:001> |*
# 0 id: 7f8 attach name: C:\Parent\x64\Debug\Parent.exe
. 1 id: 2d4 child name: notepad.exe
Um den untergeordneten Prozess zu beenden, geben Sie den Befehl .kill ein. Der übergeordnete Prozess läuft weiter.
1:001> .kill
Terminated. Exit thread and process events will occur.
1:001> g
Verwendung des Parameters -o
Wenn Sie WinDbg oder CDB starten, können Sie den Parameter -o verwenden, um dem Debugger mitzuteilen, dass er sich an untergeordnete Prozesse anhängen soll. Der folgende Befehl startet beispielsweise WinDbg, das gestartet und an Parent.exe angehängt wird. Wenn Parent.exe einen untergeordneten Prozess erstellt, wird WinDbg an den untergeordneten Prozess angehängt.
windbg -g -G -o Elternteil.exe
Weitere Informationen finden Sie unter WinDbg Befehlszeilenoptionen und CDB Befehlszeilenoptionen.
Anforderungen
Version |
Versionen: (Kernelmodus) Unterstützt in Windows Server 2003 und höher. |