Anfügen an laufende Prozesse mit dem Visual Studio Debugger
Sie können den Visual Studio-Debugger an einen laufenden Prozess auf einem lokalen oder Rmotecomputer anfügen. Sobald der Prozess ausgeführt wird, wählen Sie Debuggen>An den Prozess anhängen aus, oder drücken Sie in Visual Studio STRG+ALT+P, und verwenden Sie das Dialogfeld An den Prozess anhängen, um den Debugger an den Prozess anzuhängen.
Sie können An den Prozess anhängen verwenden, um laufende Apps auf lokalen oder Remotecomputern zu debuggen, um mehrere Prozesse gleichzeitig zu debuggen, um Apps zu debuggen, die nicht in Visual Studio erstellt wurden, oder um Apps zu debuggen, die Sie nicht von Visual Studio aus mit dem angehängten Debugger gestartet haben. Wenn Sie z. B. eine App ohne den Debugger ausführen und eine Ausnahme auslösen, dann können Sie den Debugger an den Prozess anhängen, der die App ausführt, und mit dem Debuggen beginnen.
Tipp
Sind Sie nicht sicher, ob Sie An den Prozess anhängen für Ihr Debugszenario verwenden sollen? Weitere Informationen finden Sie unter Allgemeine Debugszenarien.
Anhängen an einen laufenden Prozess auf dem lokalen Computer
Informationen zum schnellen erneuten Anhängen an einen Prozess, an den Sie zuvor angehängt haben, finden Sie unter Erneutes Anhängen an einen Prozess.
Seit Visual Studio 2022, Version 17.10 Vorschau 2, hat sich das Dialogfeld „An Prozess anfügen“ geändert. Wenn Sie Anweisungen für das ältere Dialogfeld benötigen, wechseln Sie zur Ansicht für Visual Studio 2019 (obere linke Versionsauswahl im Artikel).
So hängen Sie einen Prozess auf dem lokalen Computer an
Wählen Sie in Visual Studio Debuggen>An den Prozess anhängen aus (oder drücken Sie STRG+ALT+P), um das Dialogfeld An den Prozess anhängen zu öffnen.
Legen Sie den Verbindungstyp auf Lokal fest.
In den meisten lokalen Debugszenarien können Sie Lokal nutzen. Für einige Szenarien ist möglicherweise ein anderer Verbindungstyp erforderlich. Weitere Informationen finden Sie in den anderen Abschnitten dieses Artikels oder unter Allgemeine Debugszenarien.
Suchen und wählen Sie in der Liste Verfügbare Prozesse den Prozess oder die Prozesse aus, die Sie anhängen möchten.
- Geben Sie zur schnellen Auswahl eines Prozesses seinen Namen oder den Anfangsbuchstaben in das Feld Prozesse filtern ein.
- Wenn Sie den Prozessnamen nicht kennen, durchsuchen Sie die Liste, oder lesen Sie Allgemeine Debugszenarien, um einige gängige Prozessnamen zu erhalten.
- Verwenden Sie die Schaltfläche Fenster nachverfolgen, um das Auswählen eines Fensters auf dem Computer zu aktivieren, durch das der Prozess festgelegt wird.
Tipp
Prozesse können im Hintergrund gestartet und beendet werden, während das Dialogfeld An den Prozess anhängen geöffnet ist, sodass die Liste der aktiven Prozesse möglicherweise nicht immer aktuell ist. Sie können jederzeit Aktualisieren auswählen, um die aktuelle Liste anzuzeigen.
Stellen Sie sicher, dass im Feld Codetyp der Typ des zu debuggenden Codes aufgeführt ist.
Die Standardeinstellung Automatisch funktioniert für die meisten App-Typen. Sie können jedoch einen bestimmten Codetyp auswählen, um den Debuggertyp manuell festzulegen.
Wählen Sie Anfügen aus.
Tipp
Verwenden Sie in dem Szenario, in dem Sie über mehrere identische Prozesse verfügen, die Befehlszeilenspalte oder die w3wp-Prozessdetails aus der Spalte „Titel“, um den richtigen Prozess zu identifizieren.
Wählen Sie in Visual Studio Debuggen>An den Prozess anhängen aus (oder drücken Sie STRG+ALT+P), um das Dialogfeld An den Prozess anhängen zu öffnen.
Überprüfen Sie den Verbindungstyp.
In den meisten Szenarien können Sie Standard verwenden. Für einige Szenarien ist möglicherweise ein anderer Verbindungstyp erforderlich. Weitere Informationen finden Sie in den anderen Abschnitten dieses Artikels oder unter Allgemeine Debugszenarien.
Legen Sie das Verbindungsziel auf den Namen Ihres lokalen Computers fest.
Suchen und wählen Sie in der Liste Verfügbare Prozesse den Prozess oder die Prozesse aus, die Sie anhängen möchten.
Geben Sie zur schnellen Auswahl eines Prozesses seinen Namen oder den Anfangsbuchstaben in das Feld Prozesse filtern ein.
Wenn Sie den Prozessnamen nicht kennen, durchsuchen Sie die Liste, oder lesen Sie Allgemeine Debugszenarien, um einige gängige Prozessnamen zu erhalten.
Tipp
Prozesse können im Hintergrund gestartet und beendet werden, während das Dialogfeld An den Prozess anhängen geöffnet ist, sodass die Liste der aktiven Prozesse möglicherweise nicht immer aktuell ist. Sie können jederzeit Aktualisieren auswählen, um die aktuelle Liste anzuzeigen.
Stellen Sie sicher, dass im Feld Anfügen an der Typ des zu debuggenden Codes aufgeführt ist. Die Standardeinstellung Automatisch funktioniert für die meisten App-Typen.
Wenn Sie den Verbindungstyp Standard verwenden, können Sie den Typ des Codes, den Sie anfügen möchten, manuell auswählen. Andernfalls ist die Option Auswählen möglicherweise deaktiviert.
So wählen Sie Codetypen manuell aus
- Klicken Sie auf Auswählen.
- Wählen Sie im Dialogfeld Codetyp auswählen die Option Diese Codetypen debuggen aus. Wenn beim Versuch, einen Prozess in der Liste anzufügen, ein Fehler auftritt, können Sie das Dialogfeld Codetyp auswählen verwenden, um die Problembehandlung zu erleichtern.
- Wählen Sie die zu debuggenden Codetypen aus.
- Klicken Sie auf OK.
Wählen Sie Anfügen aus.
Hinweis
Sie können zum Debuggen an mehrere Apps angefügt werden, aber jeweils nur eine App ist im Debugger aktiv. Sie können die aktive App auf der Visual Studio-Symbolleiste Debugspeicherort oder im Fenster Prozesse festlegen.
Anfügen an einen Prozess auf einem Remotecomputer
Sie können auch einen Remotecomputer im Dialogfeld An den Prozess anhängen auswählen, eine Liste verfügbarer Prozesse anzeigen, die auf diesem Computer ausgeführt werden, und an einen oder mehrere der Prozesse zum Debuggen anhängen. Der Remotedebugger (msvsmon.exe) muss auf dem Remotecomputer ausgeführt werden. Weitere Informationen finden Sie unter Remotedebuggen.
Seit Visual Studio 2022, Version 17.10 Vorschau 2, hat sich das Dialogfeld „An Prozess anfügen“ geändert. Wenn Sie Anweisungen für das ältere Dialogfeld benötigen, wechseln Sie zur Ansicht für Visual Studio 2019 (obere linke Versionsauswahl im Artikel).
So fügen Sie an einen aktiven Prozess auf einem Remotecomputer an
Wählen Sie in Visual Studio Debuggen>An den Prozess anhängen aus (oder drücken Sie STRG+ALT+P), um das Dialogfeld An den Prozess anhängen zu öffnen.
Legen Sie den Verbindungstyp auf einen Remoteverbindungstyp wie Remoteverbindung (Windows) fest.
In den meisten Szenarien für das Remotedebuggen unter Windows können Sie Remote (Windows) verwenden. Einige Szenarien wie das Debuggen von Linux oder einer Containeranwendung erfordern einen anderen Verbindungstyp. Weitere Informationen finden Sie in den anderen Abschnitten dieses Artikels oder unter Allgemeine Debugszenarien.
Daraufhin wird die Option Verbindungsziel angezeigt.
Wählen Sie im Feld Verbindungsziel den Remotecomputer mit einer der folgenden Methoden aus:
- Wählen Sie den Dropdownlistenpfeil neben Verbindungsziel und dann den Computernamen aus der Dropdownliste aus.
- Geben Sie den Computernamen in das Feld Verbindungsziel ein, und drücken Sie die EINGABETASTE.
- Wählen Sie die Schaltfläche Suchen neben dem Feld Verbindungsziel aus, um das Dialogfeld Remoteverbindungen zu öffnen. Das Dialogfeld Remoteverbindungen listet alle Geräte auf, die sich in Ihrem lokalen Subnetz befinden oder direkt an Ihren Computer angefügt sind. Möglicherweise müssen Sie auf dem Server den ausgehenden UDP-Port 3702 öffnen, um Remotegeräte zu erkennen. Wählen Sie den gewünschten Computer bzw. das gewünschte Gerät aus und schließen Sie den Dialog.
Vergewissern Sie sich, dass Visual Studio den erforderlichen Port dem Computernamen hinzufügt, der im folgenden Format angezeigt wird: <Remotecomputername>:Port
Hinweis
Wenn Sie keine Verbindung über den Namen des Remotecomputers herstellen können, versuchen Sie es mit der IP- und Portadresse (z. B.
123.45.678.9:4026
). 4026 ist der Standardport für den Remotedebugger von Visual Studio 2022. Weitere Informationen zu anderen Portzuweisungen des Remotedebuggers finden Sie unter Remotedebugger – Portzuweisungen.Die Einstellung Verbindungstyp bleibt zwischen den Debugsitzungen bestehen. Die Einstellung Verbindungsziel bleibt zwischen Debugsitzungen nur dann bestehen, wenn eine erfolgreiche Debugverbindung mit diesem Ziel hergestellt wurde.
Klicken Sie auf Aktualisieren, um die Liste Verfügbare Prozesse zu füllen.
Tipp
Prozesse können im Hintergrund gestartet und beendet werden, während das Dialogfeld An den Prozess anhängen geöffnet ist, sodass die Liste der aktiven Prozesse möglicherweise nicht immer aktuell ist. Sie können jederzeit Aktualisieren auswählen, um die aktuelle Liste anzuzeigen.
Suchen und wählen Sie in der Liste Verfügbare Prozesse den Prozess oder die Prozesse aus, die Sie anhängen möchten.
Geben Sie zur schnellen Auswahl eines Prozesses seinen Namen oder den Anfangsbuchstaben in das Suchfeld ein.
Wenn Sie den Prozessnamen nicht kennen, durchsuchen Sie die Liste, oder lesen Sie Allgemeine Debugszenarien, um einige gängige Prozessnamen zu erhalten.
Aktivieren Sie das Kontrollkästchen Prozesse aller Benutzern anzeigen, um Prozesse zu finden, die unter allen Benutzerkonten ausgeführt werden.
Hinweis
Wird versucht, eine Verbindung mit einem Prozess herzustellen, der zu einem nicht vertrauenswürdigen Benutzerkonto gehört, wird ein Bestätigungsdialogfeld mit einer Sicherheitswarnung angezeigt. Weitere Informationen finden Sie unter Sicherheitswarnung: Das Anfügen an einen Prozess, der einem nicht vertrauenswürdigen Benutzer gehört, kann gefährlich sein. Wenn die folgenden Informationen verdächtig wirken oder Sie sich hinsichtlich der Vorgehensweise nicht sicher sind, fügen Sie an den Prozess nichts an
Stellen Sie sicher, dass im Feld Codetyp der Typ des zu debuggenden Codes aufgeführt ist.
Die Standardeinstellung Automatisch funktioniert für die meisten App-Typen. Sie können jedoch einen bestimmten Codetyp auswählen, um den Debuggertyp manuell festzulegen.
Wählen Sie Anfügen aus.
Wählen Sie in Visual Studio Debuggen>An den Prozess anhängen aus (oder drücken Sie STRG+ALT+P), um das Dialogfeld An den Prozess anhängen zu öffnen.
Überprüfen Sie den Verbindungstyp.
In den meisten Szenarien können Sie Standard verwenden. Einige Szenarien wie das Debuggen von Linux oder einer Containeranwendung erfordern einen anderen Verbindungstyp. Weitere Informationen finden Sie in den anderen Abschnitten dieses Artikels oder unter Allgemeine Debugszenarien.
Wählen Sie im Feld Verbindungsziel den Remotecomputer mit einer der folgenden Methoden aus:
- Wählen Sie den Dropdownlistenpfeil neben Verbindungsziel und dann den Computernamen aus der Dropdownliste aus.
- Geben Sie den Computernamen in das Feld Verbindungsziel ein, und drücken Sie die EINGABETASTE.
- Wählen Sie die Schaltfläche Suchen neben dem Feld Verbindungsziel aus, um das Dialogfeld Remoteverbindungen zu öffnen. Das Dialogfeld Remoteverbindungen listet alle Geräte auf, die sich in Ihrem lokalen Subnetz befinden oder direkt an Ihren Computer angefügt sind. Möglicherweise müssen Sie auf dem Server den ausgehenden UDP-Port 3702 öffnen, um Remotegeräte zu erkennen. Wählen Sie den gewünschten Computer bzw. das gewünschte Gerät aus, und klicken Sie dann auf Auswählen.
Vergewissern Sie sich, dass Visual Studio den erforderlichen Port dem Computernamen hinzufügt, der im folgenden Format angezeigt wird: <Remotecomputername>:Port
Hinweis
Wenn Sie keine Verbindung über den Namen des Remotecomputers herstellen können, versuchen Sie es mit der IP- und Portadresse (z. B.
123.45.678.9:4022
). 4024 ist der Standardport für den Remotedebugger von Visual Studio 2019. Weitere Informationen zu anderen Portzuweisungen des Remotedebuggers finden Sie unter Remotedebugger – Portzuweisungen.Die Einstellung Verbindungstyp bleibt zwischen den Debugsitzungen bestehen. Die Einstellung Verbindungsziel bleibt zwischen Debugsitzungen nur dann bestehen, wenn eine erfolgreiche Debugverbindung mit diesem Ziel hergestellt wurde.
Klicken Sie auf Aktualisieren, um die Liste Verfügbare Prozesse zu füllen.
Tipp
Prozesse können im Hintergrund gestartet und beendet werden, während das Dialogfeld An den Prozess anhängen geöffnet ist, sodass die Liste der aktiven Prozesse möglicherweise nicht immer aktuell ist. Sie können jederzeit Aktualisieren auswählen, um die aktuelle Liste anzuzeigen.
Suchen und wählen Sie in der Liste Verfügbare Prozesse den Prozess oder die Prozesse aus, die Sie anhängen möchten.
Geben Sie zur schnellen Auswahl eines Prozesses seinen Namen oder den Anfangsbuchstaben in das Feld Prozesse filtern ein.
Wenn Sie den Prozessnamen nicht kennen, durchsuchen Sie die Liste, oder lesen Sie Allgemeine Debugszenarien, um einige gängige Prozessnamen zu erhalten.
Aktivieren Sie das Kontrollkästchen Prozesse aller Benutzern anzeigen, um Prozesse zu finden, die unter allen Benutzerkonten ausgeführt werden.
Hinweis
Wird versucht, eine Verbindung mit einem Prozess herzustellen, der zu einem nicht vertrauenswürdigen Benutzerkonto gehört, wird ein Bestätigungsdialogfeld mit einer Sicherheitswarnung angezeigt. Weitere Informationen finden Sie unter Sicherheitswarnung: Das Anfügen an einen Prozess, der einem nicht vertrauenswürdigen Benutzer gehört, kann gefährlich sein. Wenn die folgenden Informationen verdächtig wirken oder Sie sich hinsichtlich der Vorgehensweise nicht sicher sind, fügen Sie an den Prozess nichts an
Stellen Sie sicher, dass im Feld Anfügen an der Typ des zu debuggenden Codes aufgeführt ist. Die Standardeinstellung Automatisch funktioniert für die meisten App-Typen.
Wenn Sie den Verbindungstyp Standard verwenden, können Sie den Typ des Codes, den Sie anfügen möchten, manuell auswählen. Andernfalls ist die Option Auswählen möglicherweise deaktiviert.
So wählen Sie Codetypen manuell aus
- Klicken Sie auf Auswählen.
- Wählen Sie im Dialogfeld Codetyp auswählen die Option Diese Codetypen debuggen aus. Wenn beim Versuch, einen Prozess in der Liste anzufügen, ein Fehler auftritt, können Sie das Dialogfeld Codetyp auswählen verwenden, um die Problembehandlung zu erleichtern.
- Klicken Sie auf OK.
Wählen Sie Anfügen aus.
Hinweis
Sie können zum Debuggen an mehrere Apps angefügt werden, aber jeweils nur eine App ist im Debugger aktiv. Sie können die aktive App auf der Visual Studio-Symbolleiste Debugspeicherort oder im Fenster Prozesse festlegen.
In einigen Fällen werden beim Debuggen in einer Remotedesktopsitzung (Terminaldienste) in der Liste Verfügbare Prozesse nicht alle verfügbaren Prozesse angezeigt. Wenn Sie Visual Studio als Benutzer mit einem eingeschränkten Benutzerkonto ausführen, werden in der Liste Verfügbare Prozesse keine Prozesse angezeigt, die in Sitzung 0 ausgeführt werden. Sitzung 0 wird für Dienste und andere Serverprozesse verwendet, einschließlich w3wp.exe. Sie können dieses Problem beheben, indem Sie Visual Studio unter einem Administratorkonto oder an der Serverkonsole anstelle in einer Remotedesktopsitzung ausführen.
Wenn keine dieser beiden Problemlösungen möglich ist, können Sie als dritte Möglichkeit den Prozess anfügen, indem Sie vsjitdebugger.exe -p <ProcessId>
in der Windows-Befehlszeile ausführen. Die Prozess-ID kann mit tlist.exe ermittelt werden. Laden Sie die Debugtools für Windows unter WDK and WinDbg downloads (Herunterladen von WDK und WinDbg) herunter, um tlist.exe abzurufen.
Anfügen an einen .NET Core-Prozess, der in Azure App Service ausgeführt wird (Windows)
Wenn Sie Azure App Service (Windows) veröffentlichen, finden Sie Remotedebuggen von ASP.NET Core in Azure oder Debuggen Azure-App Services für Anweisungen.
Anfügen an einen .NET Core-Prozess, der in Azure App Service ausgeführt wird (Windows)
Wenn Sie in Azure App Service (Windows) veröffentlichen, finden Sie die Option Debugger anfügen im Menü ... unter Hosting im Veröffentlichungsprofil. Visual Studio versucht, den Remotedebugger an die Instanz von Azure App Service (Windows) anzufügen, in der das Profil die Veröffentlichung durchführt.
Anfügen an einen .NET Core-Prozess unter Linux mit SSH
Weitere Informationen finden Sie unter Remotedebuggen von .NET Core unter Linux mit SSH.
Anfügen an einen in einem Docker-Container ausgeführten Prozess
Ab Visual Studio 2019 können Sie den Visual Studio-Debugger an einen Prozess anfügen, der in einem Docker-Container ausgeführt wird. Weitere Informationen zum Linux-Docker-Container in .NET Core finden Sie unter Anfügen an einen Prozess, der in einem Linux-Docker-Container ausgeführt wird. Weitere Informationen zum Windows-Docker-Container finden Sie unter Anfügen an einen Prozess, der in einem Windows-Docker-Container ausgeführt wird.
Erneutes Anfügen an einen Prozess
Mit Debuggen>Erneut an den Prozess anhängen (UMSCHALT+ALT+P) können Sie schnell erneut an Prozesse anhängen, an die Sie zuvor angefügt haben. Wenn Sie diesen Befehl auswählen, versucht der Debugger sofort, an die letzten Prozesse, an die Sie angehängt haben, anzuhängen, indem er zuerst versucht, die vorherige Prozess-ID und, falls das nicht erfolgreich ist, den vorherigen Prozessnamen abzugleichen. Wenn keine Übereinstimmungen gefunden werden oder wenn mehrere Prozesse denselben Namen aufweisen, wird das Dialogfeld An den Prozess anhängen geöffnet, damit Sie den richtigen Prozess auswählen können.
Hinweis
Der Befehl Erneut an den Prozess anhängen ist ab Visual Studio 2017 verfügbar.
Allgemeine Debugszenarien
Um Ihnen bei der Entscheidung zu helfen, ob Sie An den Prozess anhängen verwenden und an welchen Prozess Sie anhängen sollen, zeigt die folgende Tabelle einige gängige Debugszenarien mit Links zu weiteren Anweisungen, sofern verfügbar. (Die Liste ist nicht vollständig.)
Um schnell einen aktiven Prozess zum Anhängen auszuwählen, geben Sie in Visual Studio STRG+ALT+P und dann den ersten Buchstaben des Prozessnamens ein.
Damit der Debugger an C++-Code angefügt werden kann, muss der Code DebuggableAttribute
ausgeben. Sie können dieses Attribut automatisch in den Code einfügen, indem Sie eine Verknüpfung über die /ASSEMBLYDEBUG -Linkeroption herstellen.
Für clientseitiges Skriptdebugging muss das Skriptdebuggen im Browser aktiviert sein. Zum Debuggen von clientseitigem Skript in Chrome wählen Sie JavaScript oder TypeScript als Codetyp aus, und je nach App-Typ müssen Sie möglicherweise alle Chrome-Instanzen schließen und den Browser im Debugmodus starten (geben Sie chrome.exe --remote-debugging-port=9222
von einer Befehlszeile aus ein).
Für clientseitiges Skriptdebugging muss das Skriptdebuggen im Browser aktiviert sein. Zum Debuggen von clientseitigem Skript in Chrome wählen Sie JavaScript (Chrome) oder JavaScript (Microsoft Edge – Chromium) als Codetyp aus, und je nach App-Typ müssen Sie möglicherweise alle Chrome-Instanzen schließen und den Browser im Debugmodus starten (geben Sie chrome.exe --remote-debugging-port=9222
von einer Befehlszeile aus ein). In früheren Versionen von Visual Studio war der Skriptdebugger für Chrome das Webkit.
Szenario | Debugmethode | Prozessname | Hinweise und Links |
---|---|---|---|
ASP.NET Core: Remotedebuggen auf dem IIS-Server | Verwenden von Remotetools und An den Prozess anhängen | w3wp.exe oder dotnet.exe | Ab .NET Core 3 wird der Prozess w3wp.exe für das standardmäßige In-App-Hostingmodell verwendet. Informationen zur Bereitstellung von Apps finden Sie unter Veröffentlichen in IIS. Ausführlichere Informationen finden Sie unter Remotedebuggen von ASP.NET Core auf einem IIS-Remotecomputer |
ASP.NET Core: Debuggen auf dem lokalen Computer nach dem Starten der App ohne den Debugger | Verwenden von An den Prozess anhängen | appname.exe oder iisexpress.exe | Dies kann hilfreich sein, damit Ihre App schneller geladen wird, z. B. bei der Profilerstellung. Der lokale Standard-Serverprozess (Kestrel) für ASP.NET Core ist appname.exe. |
ASP.NET 4 oder 4.5: Remotedebuggen auf einem IIS-Server | Verwenden von Remotetools und An den Prozess anhängen | w3wp.exe | Weitere Informationen finden Sie unter Remotedebuggen von ASP.NET auf einem IIS-Remotecomputer |
Clientseitiges Skript: Debuggen auf einem lokalen IIS-Server für unterstützte App-Typen | Verwenden von An den Prozess anhängen | chrome.exe oder msedge.exe | Skriptdebugging muss aktiviert sein. Für Chrome müssen Sie Chrome auch im Debugmodus ausführen (geben Sie chrome.exe --remote-debugging-port=9222 von der Befehlszeile aus ein) und JavaScript oder TypeScript im Feld Anfügen auswählen. |
C#-, Visual Basic- oder C++-App: Debuggen auf dem lokalen Computer | Verwenden Sie entweder das Standarddebuggen (F5) oder An den Prozess anhängen. | <appname>.exe | Verwenden Sie in den meisten Szenarien das Standarddebuggen und nicht An den Prozess anhängen. |
Windows-Desktop-App: Remotedebuggen | Remotetools | Nicht zutreffend | Weitere Informationen finden Sie unter Remotedebuggen einer C#- oder Visual Basic-App oder Remotedebuggen einer C++-App. |
.NET Core unter Linux: Debuggen | Verwenden von An den Prozess anhängen | dotnet.exe oder ein eindeutiger Prozessname | Weitere Informationen zur Verwendung von SSH finden Sie unter Remotedebuggen von .NET Core unter Linux mit SSH. Weitere Informationen zu containerisierten Apps finden Sie unter Anfügen an einen in einem Docker-Container ausgeführten Prozess. |
Containerisierte App: Debuggen | Verwenden von An den Prozess anhängen | dotnet.exe oder ein eindeutiger Prozessname | Weitere Informationen finden Sie unter Anfügen an einen in einem Docker-Container ausgeführten Prozess. |
Python unter Linux: Remotedebuggen | Verwenden von An den Prozess anhängen | debugpy | Weitere Informationen finden Sie unter Remoteanfügen über Python Tools. |
Andere unterstützte App-Typen: Debuggen in einem Serverprozess | Wenn es sich um einen Remoteserver handelt, verwenden Sie Remotetools und An den Prozess anhängen. | chrome.exe, msedge.exe oder andere Prozesse | Verwenden Sie bei Bedarf den Ressourcenmonitor, um den Prozess zu identifizieren. Weitere Informationen finden Sie unter Remote debugging (Remotedebuggen). |
UWP-App (Universelle Windows-Plattform), OneCore-App, HoloLens-App und IoT-App: Remotedebuggen | Installiertes App-Paket debuggen | Nicht zutreffend | Weitere Informationen finden Sie unter Debuggen eines installierten App-Pakets, anstatt An den Prozess anhängen zu verwenden. |
UWP-App (Universelle Windows-Plattform), OneCore-App, HoloLens-App und IoT-App: Debuggen einer App, die nicht in Visual Studio gestartet wurde | Installiertes App-Paket debuggen | Nicht zutreffend | Weitere Informationen finden Sie unter Debuggen eines installierten App-Pakets, anstatt An den Prozess anhängen zu verwenden. |
Verwenden von Debuggerfeatures
Um die vollständigen Features des Visual Studio-Debuggers (wie das Erreichen von Haltepunkten) beim Anfügen an einen Prozess nutzen zu können, muss die App exakt mit Ihrer lokalen Quelle und den Symbolen übereinstimmen. Das bedeutet, dass der Debugger in der Lage sein muss, die richtigen PDB-Symboldateien zu laden. Standardmäßig ist hierfür ein Debugbuild erforderlich.
Für Remotedebuggingszenarien müssen Sie den Quellcode (oder eine Kopie des Quellcodes) bereits in Visual Studio geöffnet haben. Die kompilierten Binärdateien der App auf dem Remotecomputer müssen vom gleichen Build wie auf dem lokalen Computer stammen.
In einigen lokalen Debugszenarien können Sie in Visual Studio ohne Zugriff auf die Quelle debuggen, wenn die richtigen Symboldateien für die App vorhanden sind. Standardmäßig ist hierfür ein Debugbuild erforderlich. Weitere Informationen finden Sie unter Angeben von Symbol- und Quelldateien.
Beheben von Fehlern beim Anfügen
In einigen Szenarien kann der Debugger Hilfe benötigen, um den Typ des zu debuggenden Codes ordnungsgemäß zu bestimmen. Wenn die Verbindungswerte zwar richtig festgelegt sind (Sie können den ordnungsgemäßen Prozess in der Liste Verfügbare Prozesse einsehen), der Debugger aber nicht angefügt werden kann, versuchen Sie, in der Liste Codetyp den geeignetsten Debugger auszuwählen. Dies kann beispielsweise erforderlich sein, wenn Sie eine Linux- oder Python-App debuggen.
In einigen Szenarien kann der Debugger Hilfe benötigen, um den Typ des zu debuggenden Codes ordnungsgemäß zu bestimmen. Wenn die Verbindungswerte zwar richtig festgelegt sind (Sie können den ordnungsgemäßen Prozess in der Liste Verfügbare Prozesse einsehen), der Debugger aber nicht angefügt werden kann, versuchen Sie, in der Liste Verbindungstyp den geeignetsten Verbindungstyp auszuwählen. Dies kann beispielsweise erforderlich sein, wenn Sie eine Linux- oder Python-App debuggen. Bei Verwendung des Verbindungstyps „Standard“ können Sie alternativ den spezifischen Typ des Codes auswählen, mit dem eine Verbindung hergestellt werden soll, wie weiter unten in diesem Abschnitt beschrieben.
Wenn der Debugger an einen laufenden Prozess angehängt wird, kann dieser Prozess mehrere Codetypen enthalten. Die Codetypen, an die der Debugger angefügt werden kann, werden im Dialogfeld Codetyp auswählen angezeigt und ausgewählt.
Manchmal kann der Debugger erfolgreich an den einen Codetyp, nicht aber an den anderen Codetyp angehängt werden. Dies tritt normalerweise in den folgenden Fällen auf:
- Sie versuchen das Anfügen an einen Prozess, der auf einem Remotecomputer läuft. Auf dem Remotecomputer sind möglicherweise nur Remotedebugkomponenten für bestimmte Codetypen installiert.
- Sie versuchen, den Debugger zum direkten Datenbankdebuggen an mehr als einen Prozess anzufügen. SQL-Debuggen unterstützt lediglich das Anfügen an einen einzelnen Prozess.
Wenn der Debugger nur an bestimmte, nicht aber an alle Codetypen angefügt werden kann, wird eine Meldung mit den Typen angezeigt, die nicht angefügt werden konnten.
Wenn der Debugger erfolgreich an mindestens einen Codetyp angehängt werden kann, können Sie mit dem Debuggen des Prozesses fortfahren. Sie können nur die erfolgreich angehängten Codetypen debuggen. Der nicht angefügte Code im Prozess wird zwar weiterhin ausgeführt, doch Sie wären nicht in der Lage, Haltepunkte festzulegen, Daten anzuzeigen oder andere Debugoperationen für diesen Code durchzuführen.
Um weitere Informationen darüber zu erhalten, warum der Debugger nicht an einen Codetyp angefügt werden konnte, versuchen Sie erneut, den Debugger nur an diesen Codetyp anzufügen.
Informationen darüber erhalten, warum ein bestimmter Codetyp nicht angehängt werden konnte
Trennen Sie den Prozess. Wählen Sie im Menü Debuggen die Option Alle trennen aus.
Fügen Sie erneut an den Prozess an, wobei Sie nur den Codetyp auswählen, der nicht angefügt werden konnte.
Wählen Sie im Dialogfeld An den Prozess anhängen in der Liste Verfügbare Prozesse den entsprechenden Prozess aus.
Wählen Sie in der Option Codetyp den Codetyp aus, der nicht angehängt werden konnte. Deaktivieren Sie die anderen Codetypen.
Wählen Sie im Dialogfeld An den Prozess anhängen die Option Anfügen aus.
Dieses Mal schlägt das Anfügen komplett fehl, und Sie erhalten eine spezifische Fehlermeldung.
Trennen Sie den Prozess. Wählen Sie im Menü Debuggen die Option Alle trennen aus.
Fügen Sie erneut an den Prozess an, wobei Sie nur den Codetyp auswählen, der nicht angefügt werden konnte.
Wählen Sie im Dialogfeld An den Prozess anhängen in der Liste Verfügbare Prozesse den entsprechenden Prozess aus.
Wählen Sie Auswählen.
Klicken Sie im Dialogfeld Codetyp auswählen auf Diese Codetypen debuggen , und wählen Sie anschließend den Codetyp aus, der nicht angefügt werden konnte. Deaktivieren Sie die anderen Codetypen.
Klicken Sie auf OK.
Wählen Sie im Dialogfeld An den Prozess anhängen die Option Anfügen aus.
Dieses Mal schlägt das Anfügen komplett fehl, und Sie erhalten eine spezifische Fehlermeldung.