.attach (An Prozess anhängen)

Der ".attach"- Befehl wird an eine neue Zielanwendung angefügt.

.attach [-premote RemoteOptions] AttachOptions PID

Parameter

RemoteOptions
Gibt einen Prozessserver an, mit dem eine Verbindung hergestellt werden soll. Die Optionen sind mit denen für die Befehlszeilenoption "-premote " identisch. Details zur Syntax finden Sie unter Aktivieren eines Smart Client .

AttachOptions
Gibt an, wie die Anfügung ausgeführt werden soll. Dies kann eine der folgenden Optionen umfassen:

-b
Verhindert, dass der Debugger beim Anfügen an einen Zielprozess eine anfängliche Unterbrechung anfordert. Dies kann hilfreich sein, wenn die Anwendung bereits angehalten wurde oder wenn Sie das Erstellen eines Unterbrechungsthreads im Ziel vermeiden möchten.

-e
Ermöglicht dem Debugger das Anfügen an einen Prozess, der bereits gedebuggt wird. Weitere Informationen finden Sie unter "Erneutes Anfügen an die Zielanwendung ".

-k
Startet eine lokale Kerneldebuggingsitzung. Details finden Sie unter Ausführen des lokalen Kerneldebuggings .

-f
Fixiert alle Threads in allen Zielanwendungen, mit Ausnahme des neuen Ziels, an das angefügt wird. Diese Threads bleiben eingefroren, bis eine Ausnahme im neu angefügten Prozess auftritt. Beachten Sie, dass ein anfänglicher Haltepunkt als Ausnahme qualifiziert ist. Einzelne Threads können mithilfe des Befehls ~u (Fixierungsthread aufheben) aufgehoben werden.

-r

Bewirkt, dass der Debugger den Zielprozess startet, der beim Anfügen ausgeführt wird. Dies kann hilfreich sein, wenn die Anwendung bereits angehalten ist und sie die Ausführung fortsetzen soll.

-v
Bewirkt, dass der angegebene Prozess nicht invasiv gedebuggt wird.

PID
Gibt die Prozess-ID der neuen Zielanwendung an.

Environment

Element Beschreibung
Modi Nur Benutzermodus
Targets Nur Livedebugging
Plattformen Alle

Hinweise

Dieser Befehl kann verwendet werden, wenn CDB ruhend ist oder wenn er bereits ein oder mehrere Prozesse debugt. Sie kann nicht verwendet werden, wenn WinDbg ruhend ist.

Wenn dieser Befehl erfolgreich ist, wird der Debugger an den angegebenen Prozess angefügt, wenn der Debugger das nächste Mal einen Ausführungsbefehl ausgibt. Wenn dieser Befehl mehrmals in einer Zeile verwendet wird, muss die Ausführung so oft angefordert werden, wie dieser Befehl verwendet wurde.

Da die Ausführung während des nichtinvasiven Debuggens nicht zulässig ist, kann der Debugger nicht mehrere Prozesse gleichzeitig debuggen. Dies bedeutet auch, dass die Verwendung des Befehls ".attach -v " möglicherweise eine bereits vorhandene invasive Debugsitzung weniger nützlich rendert.

Mehrere Zielprozesse werden immer zusammen ausgeführt, es sei denn, einige ihrer Threads werden fixiert oder angehalten.

Wenn Sie an einen neuen Prozess anfügen und alle vorhandenen Ziele fixieren möchten, verwenden Sie die Option -f . Sie können z. B. einen Absturz in einer Clientanwendung debuggen und an den Serverprozess anfügen, ohne die Ausführung der Clientanwendung zuzulassen.

Wenn die Option "-premote " verwendet wird, ist der neue Prozess Teil eines neuen Systems. Ausführliche Informationen finden Sie unter Debuggen mehrerer Ziele.