.attach (An Den Prozess anfügen)

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

.attach [-premote RemoteOptions] AttachOptions PID

Parameter

RemoteOptions
Gibt einen Prozessserver an, an den angefügt werden soll. Die Optionen sind mit denen für die Befehlszeilenoption -premote identisch. Syntaxdetails finden Sie unter Aktivieren eines smarten Clients .

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

-B
Verhindert, dass der Debugger beim Anfügen an einen Zielprozess einen ersten Einbruch anfordert. Dies kann hilfreich sein, wenn die Anwendung bereits angehalten ist oder Wenn Sie das Erstellen eines Einbruchthreads 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 Kerneldebugsitzung. Weitere Informationen finden Sie unter Ausführen des lokalen Kerneldebuggens .

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

-R

Bewirkt, dass der Debugger den Zielprozess startet, der ausgeführt wird, wenn er an ihn angefügt 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 Livedebuggen
Plattformen alle

Hinweise

Dieser Befehl kann verwendet werden, wenn CDB inaktiv ist oder wenn bereits ein oder mehrere Prozesse debuggen. 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 mehr als einen Prozess gleichzeitig debuggen. Dies bedeutet auch, dass die Verwendung des Befehls .attach -v eine bereits vorhandene invasive Debugsitzung möglicherweise weniger nützlich macht.

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

Wenn Sie an einen neuen Prozess anfügen und alle vorhandenen Ziele fixieren möchten, verwenden Sie die Option -f . Beispielsweise können Sie einen Absturz in einer Clientanwendung debuggen und an den Serverprozess anfügen, ohne die Clientanwendung weiter ausführen zu lassen.

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