Meine einzige Erfahrung in der Entwicklung auf OS-Ebene war in der Grundschule, aber ich vermute, dass Folgendes (oder etwas Ähnliches) passiert:
Beim Ausführen der letzten Instanz, die der Debugger zu behandeln versuchte, ist ein Fehler aufgetreten, der jedoch durch ein anderes Problem verursacht wurde (möglicherweise wurde eine Debug-Zusicherung festgestellt, aber bevor Sie auf das Dialogfeld "Abbrechen / Wiederholen / Ignorieren" klicken konnten, wurde eine weitere Unterbrechung ausgelöst , möglicherweise aufgrund eines Nullzeigers). Nachdem Sie das Debuggen beendet haben, wartete der Debugger immer noch auf Ihre Antwort auf die erste Debug-Zusicherung, sodass der Prozess nicht beendet werden konnte. Aber dann wurde der Debugger beendet, als Sie aufhörten zu debuggen (oder taten es?) Und den Prozess in einen Zombie oder seinen Baum in Zombies verwandelten. Beim Versuch, den Zombie-Prozess zu beenden, ist ein ähnlicher Fehler aufgetreten, der Ihnen vom Task-Manager jedoch nicht mitgeteilt wurde:
C:\Windows\system32>taskkill /pid 9564 /f /t
ERROR: The process with PID 9564 (child process of PID 22520) could not be
terminated.
Reason: There is no running instance of the task.
Sollten Sie sich dazu entschließen, dasselbe für das übergeordnete Element zu versuchen (in meinem Fall war das übergeordnete Element der Debuggerprozess msvsmon.exe), schlägt dies auf die gleiche Weise fehl:
C:\Windows\system32>taskkill /pid 22520 /f /t
ERROR: The process with PID 9564 (child process of PID 22520) could not be
terminated.
Reason: There is no running instance of the task.
ERROR: The process with PID 22520 (child process of PID 13964) could not be
terminated.
Reason: There is no running instance of the task.
Das übergeordnete Element wurde von der IDE gestartet, aber die IDE hat die Nabelschnur durchtrennt, sodass Sie jetzt zwei Zombie-Prozesse haben. Sie können dem Prozess, den Sie debuggen, keinen Debugger hinzufügen, da bereits ein (Zombie-) Debugger vorhanden ist, und Sie können dem (Zombie-) Debugger keinen Debugger hinzufügen, da dies in Visual Studio angezeigt wird, wenn Sie es versuchen :
Es kann keine Verbindung zum Prozess hergestellt werden. Eine Operation ist im gegenwärtigen Zustand nicht legal.
Die Zombies befinden sich immer noch in der Prozesstabelle, sodass Sie keine weitere Instanz über den Debugger ausführen können. Möglicherweise können Sie jedoch auch eine andere Instanz außerhalb der IDE starten.
Dies behebt das spezifischere Problem, dass VS einen Zombie-Prozess erstellt. Aber Zombie-Prozesse sterben oft nicht. Nun, oft unter Windows, manchmal unter Linux, bis Sie sie mit einer Schrotflinte abschießen. Oder war das eine Abschaltung? Achten Sie jedoch auf die versehentliche Anwendung ausstehender Windows-Updates.
Ich freute mich über einige der früheren Antworten, die das Anhängen des Debuggers nahe legten, aber das obige ist das Ergebnis, das ich erhielt. Also sende ich meine Antwort und starte neu, um die Prozesstabelle zu bereinigen.