Freigeben über


Erneutes Anfügen an die Zielanwendung

Wenn der Debugger während des Debuggens im Benutzermodus einfriert oder anderweitig nicht mehr reagiert (d . h. abstürze), können Sie einen neuen Debugger an den vorhandenen Prozess anfügen.

Hinweis Diese Methode wird nur unter Microsoft Windows XP und höheren Versionen von Windows unterstützt. Diese Methode hängt nicht davon ab, ob der Debugger den Prozess ursprünglich erstellt oder an einen vorhandenen Prozess angefügt hat. Diese Methode hängt nicht davon ab, ob Sie die Option -pd verwendet haben.

Gehen Sie wie folgt vor, um einen Debugger erneut an eine vorhandene Zielanwendung anzufügen:

  1. Bestimmen Sie die Prozess-ID der Zielanwendung.

  2. Starten Sie eine neue instance von CDB oder WinDbg. Verwenden Sie die Befehlszeilenoption -pe .

    Debugger -pe -p PID 
    

    Sie können auch andere Befehlszeilenoptionen verwenden.

    Sie können auch eine Verbindung über einen ruhenden Debugger herstellen, indem Sie den Befehl .attach (An Prozess anfügen) zusammen mit der Option -e verwenden.

  3. Nachdem die Anfügung abgeschlossen ist, beenden Sie den ursprünglichen Debuggerprozess.

  4. Wenn der Prozess nicht ordnungsgemäß reagiert, kann die Anzahl der Unterbrechungen zu hoch sein. Sie können den Befehl ~m (Thread fortsetzen) verwenden, um die Anzahl der Angehaltenen zu reduzieren. Weitere Informationen zur Anzahl von Angehalten finden Sie unter Steuern von Prozessen und Threads.

Wenn der ursprüngliche Debugger weiterhin ordnungsgemäß funktioniert, funktioniert diese Methode möglicherweise nicht. Die beiden Debugger konkurrieren um Debugereignisse, und das Windows-Betriebssystem weist dem neuen Debugger nicht unbedingt alle Debugereignisse zu.

Wenn der ursprüngliche Debugger beendet wird, bevor Sie den neuen Debugger anfügen, wird auch die Zielanwendung geschlossen. (Wenn der Debugger jedoch mit der Option -pd angefügt ist und dann normal beendet wird, wird die Zielanwendung weiterhin ausgeführt. In dieser Situation kann ein zweiter Debugger an die Zielanwendung angefügt werden, ohne die Option -pe zu verwenden.)

Wenn Sie bereits einen Prozess debuggen und sich von dem Prozess trennen möchten, ihn aber in einem Debugzustand eingefroren lassen möchten, können Sie den Befehl .abandon (Abandon Process) verwenden. Nach diesem Befehl kann jeder Windows-Debugger mithilfe der in diesem Thema beschriebenen Prozedur erneut an den Prozess anfügen.