Gewusst wie: Anfügen an einen laufenden Prozess
Dieses Thema gilt für folgende Anwendungsbereiche:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro, Premium und Ultimate |
Sie können den Visual Studio-Debugger an jeden laufenden Prozess anfügen.
So fügen Sie einen Profiler an einen laufenden Prozess an
Wählen Sie im Menü Debuggen die Option An den Prozess anhängen aus. Wenn kein Projekt geöffnet ist, wählen Sie den Befehl An den Prozess anhängen über das Menü Extras.
Wählen Sie im Dialogfeld An den Prozess anhängen aus der Liste Verfügbare Prozesse das Programm, mit dem Sie eine Verbindung herstellen möchten.
Wenn das zu debuggende Programm auf einem anderen Computer ausgeführt wird, müssen Sie zunächst diesen Remotecomputer auswählen. Weitere Informationen hierzu finden Sie unter Gewusst wie: Auswählen eines Remotecomputers.
Wenn der Prozess unter einem anderen Benutzerkonto ausgeführt wird, aktivieren Sie das Kontrollkästchen Prozesse aller Benutzer anzeigen.
Wenn Sie über eine Remotedesktopverbindung verbunden sind, aktivieren Sie das Kontrollkästchen Prozesse in allen Sitzungen anzeigen.
Stellen Sie sicher, dass im Feld Anfügen an der Typ des Codes aufgelistet ist, den Sie debuggen möchten. Bei Verwendung der Standardeinstellung Automatisch wird versucht, den zu debuggenden Codetyp zu ermitteln. Wenn die automatische Einstellung nicht geeignet ist:
Klicken Sie auf Auswählen.
Klicken Sie im Dialogfeld Codetyp auswählen auf Diese Codetypen debuggen, und wählen Sie die zu debuggenden Codetypen aus.
Klicken Sie auf OK.
Klicken Sie auf Anfügen.
Die Liste Verfügbare Prozesse wird beim Öffnen des Dialogfelds Prozesse automatisch angezeigt. Prozesse können bei geöffnetem Dialogfeld im Hintergrund gestartet und angehalten werden. Der Inhalt ist jedoch nicht immer aktuell. Sie können die Liste jederzeit aktualisieren, um die aktuelle Liste der Prozesse anzuzeigen. Klicken Sie dazu auf Aktualisieren.
Sie können beim Debuggen mit mehreren Programmen verbunden sein, es ist jedoch jeweils nur ein Programm im Debugger aktiv. Sie können das aktive Programm auf der Symbolleiste Debugspeicherort oder im Fenster Prozesse festlegen. Weitere Informationen finden Sie unter Gewusst wie: Festlegen des aktuellen Programms.
Alle Ausführungsbefehle des Menüs Debuggen wirken sich auf das aktive Programm aus. Sie können die Verbindung eines gedebuggten Programms über das Dialogfeld Prozesse unterbrechen bzw. alle angefügten Programme über das Menü Debuggen trennen. Weitere Informationen finden Sie unter Gewusst wie: Unterbrechen der Ausführung.
Tipp
Damit der Debugger an verwalteten, in Visual C++ geschriebenen 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.
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 Security Warning: Attaching to a process owned by an untrusted user can be dangerous. If the following information looks suspicious or you are unsure, do not attach to this process.
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 unter Windows Server 2003 oder höheren Versionen Visual Studio unter einem eingeschränkten Benutzerkonto ausführen, werden in der Liste Verfügbare Prozesse keine Prozesse angezeigt, die in der für Dienste und andere Serverprozesse einschließlich w3wp.exe verwendeten Sitzung 0 ausgeführt werden. Sie können dieses Problem beheben, indem Sie Visual Studio unter einem Administratorkonto oder Visual Studio an der Serverkonsole und nicht in einer Terminaldienstesitzung 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 zum Abrufen von tlist.exe die Debugtools für Windows unter https://go.microsoft.com/fwlink/?LinkId=168279 herunter, und installieren Sie sie.