Share via


Debugging von mindestens einem Prozess in Visual Studio

Hier werden folgende Themen beschrieben: Starten von Debuggingprozessen, Wechseln zwischen Prozessen, Unterbrechen und Fortsetzen der Ausführung, schrittweises Ausführen des Quellcodes, Anhalten des Debuggings sowie Beenden und Abtrennen von Prozessen.

Inhalt

Konfigurieren des Ausführungsverhaltens mehrerer Prozesse

Suchen der Quell- und Symboldateien (PDB-Dateien)

Starten von mehreren Prozessen in einer VS-Projektmappe, Anfügen an einen Prozess, automatisches Starten eines Prozesses im Debugger

Wechseln zwischen Prozessen, Unterbrechen und Fortsetzen der Ausführung, schrittweises Ausführen des Quellcodes

Anhalten des Debuggings, Beenden und Abtrennen von Prozessen

Konfigurieren des Ausführungsverhaltens mehrerer Prozesse

Wenn standardmäßig mehrere Prozesse im Debugger ausgeführt werden, wirken sich die Befehle für Unterbrechen, Durchlaufen und Beenden des Debuggers normalerweise auf alle Prozesse aus. Wenn beispielsweise ein Prozess an einem Haltepunkt angehalten wird, wird die Ausführung aller anderen Prozesse auch angehalten. Sie können dieses Standardverhalten ändern, um mehr Kontrolle über die Ziele von Ausführungsbefehlen zu erhalten.

  1. Klicken Sie im Menü Debuggen auf Optionen und Einstellungen.

  2. Deaktivieren Sie im Dialogfeld Debugging auf der Seite Allgemein das Kontrollkästchen Alle Prozesse anhalten, wenn ein Prozess anhält.

Zurück nach obenInhalt

Suchen der Quell- und Symboldateien (PDB-Dateien)

Um zum Quellcode eines Prozesses zu navigieren, muss der Debugger Zugriff auf die Quell- und Symboldateien des Prozesses haben. Siehe Angeben von Symbol(PDB)- und Quelldateien im Visual Studio Debugger.

Wenn Sie nicht auf die Dateien eines Prozesses zugreifen können, können Sie mithilfe des Disassemblyfensters navigieren. Siehe Gewusst wie: Verwenden des Fensters "Disassembly".

Zurück nach obenInhalt

Starten von mehreren Prozessen in einer VS-Projektmappe, Anfügen an einen Prozess, automatisches Starten eines Prozesses im Debugger

  • Debuggen von mehreren Prozessen in einer Visual Studio-Projektmappe • Ändern des Startprojekts • Starten eines bestimmten Projekts in einer Projektmappe • Starten von mehreren Projekten in einer Projektmappe • Anfügen an einen Prozess • Automatisches Starten eines Prozesses im Debugger

Hinweis

Auch wenn sich das untergeordnete Projekt in derselben Projektmappe befindet, wird der Debugger nicht automatisch an einen untergeordneten Prozess angefügt, der durch einen debuggten Prozess gestartet wird.So debuggen Sie einen untergeordneten Prozess

  • Fügen Sie den Debugger an den untergeordneten Prozess an, nachdem dieser gestartet wurde.

    - oder -

  • Konfigurieren Sie Windows so, dass der untergeordnete Prozess in einer neuen Instanz des Debuggers automatisch gestartet wird.

Debuggen von mehreren Prozessen in einer Visual Studio-Projektmappe

Wenn Sie mehr als ein Projekt in einer Visual Studio-Projektmappe haben, die unabhängig ausgeführt werden kann (Projekte, die in separaten Prozessen ausgeführt werden), können Sie auswählen, welche Projekte vom Debugger gestartet werden.

Starttyp wird für ein Projekt geändert

Ändern des Startprojekts

Um das Startprojekt für eine Projektmappe zu ändern, wählen Sie das Projekt im Projektmappen-Explorer aus, und wählen Sie anschließend im Kontextmenü die Option Als Startprojekt festlegen.

Starten eines bestimmten Projekts in einer Projektmappe

Um ein Projekt für eine Projektmappe ohne Ändern des Standardstartprojekts zu starten, wählen Sie es im Projektmappen-Explorer aus, und wählen Sie anschließend im Kontextmenü die Option Debuggen. Sie können dann die Option Neue Instanz starten oder In neue Instanz springen wählen.

Zurück nach obenStarten von mehreren Prozessen in einer VS-Projektmappe, Anfügen an einen Prozess, automatisches Starten eines Prozesses im Debugger

Zurück nach obenInhalt

Starten mehrerer Projekte in einer Projektmappe

  1. Wählen Sie die Projektmappe im Projektmappen-Explorer aus, und wählen dann im Kontextmenü die Option Eigenschaften.

  2. Wählen Sie im Dialogfeld Eigenschaften die Optionen Allgemeine Eigenschaften und Startprojekt aus.

  3. Für jedes Projekt, das Sie ändern möchten, wählen Sie entweder Starten, Starten ohne Debugging oder Keine aus.

Zurück nach obenStarten von mehreren Prozessen in einer VS-Projektmappe, Anfügen an einen Prozess, automatisches Starten eines Prozesses im Debugger

Zurück nach obenInhalt

Anfügen an einen Prozess

Der Debugger kann auch an Programme angefügt werden, die in Prozessen außerhalb von Visual Studio ausgeführt werden, einschließlich Programme, die auf einem Remotegerät ausgeführt werden. Nachdem Sie den Debugger an ein Programm angefügt haben, können Sie dessen Ausführungsbefehle verwenden, den Programmzustand überprüfen usw. Die Möglichkeiten zum Überprüfen des Programms sind ggf. eingeschränkt. Dies hängt davon ab, ob das Programm mit Debuginformationen erstellt wurde, ob Sie Zugriff auf den Quellcode des Programms haben und ob der JIT-Compiler der Common Language Runtime die Debuginformationen verfolgt.

Weitere Informationen finden Sie unter Anfügen an laufende Prozesse mit dem Visual Studio Debugger.

Anfügen an einen auf dem lokalen Computer ausgeführten Prozess

Wählen Sie Debuggen, An den Prozess anhängen aus. Wählen Sie den Prozess im Dialogfeld An den Prozess anhängen in der Liste Verfügbare Prozesse aus, und klicken Sie dann auf Anfügen.

Dialogfeld "An den Prozess anhängen"

Zurück nach obenInhalt

Automatisches Starten eines Prozesses im Debugger

In bestimmten Fällen müssen Sie möglicherweise den Startcode für ein Programm debuggen, das von einem anderen Prozess gestartet wird. Zu den Beispielen hierfür gehören Dienste und benutzerdefinierte Setupaktionen. Für diese Szenarios können Sie festlegen, dass der Debugger beim Starten der Anwendung gestartet und automatisch an die Anwendung angefügt wird.

  1. Starten Sie den Registrierungs-Editor (regedit.exe).

  2. Suchen Sie den Ordner HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.

  3. Wählen Sie den Ordner der Anwendung aus, die Sie im Debugger starten möchten.

    Wenn der Name der Anwendung nicht als untergeordneter Ordner aufgeführt wird, wählen Sie die Option für Bilddatei-Ausführungsoptionen aus, und wählen Sie dann im Kontextmenü die Optionen Schlüssel, Neu aus. Wählen Sie den neuen Schlüssel aus, klicken Sie im Kontextmenü auf Umbenennen, und geben Sie dann den Namen der Anwendung ein.

  4. Klicken Sie im Kontextmenü des Anwendungsordners auf Neu, Zeichenfolgenwert.

  5. Ändern Sie den Namen des neuen Werts von New Value zu Debugger.

  6. Klicken Sie im Kontextmenü des Debuggereintrags auf Anpassen.

  7. Geben Sie im Dialogfeld "Zeichenfolgenwerte bearbeiten" den Eintrag vsjitdebugger.exe im Feld Wertdaten ein.

    Dialogfeld "Zeichenfolge bearbeiten"

Eintrag für automatischen Debuggerstart in "regedit.exe"

Zurück nach obenInhalt

Wechseln zwischen Prozessen, Unterbrechen und Fortsetzen der Ausführung, schrittweises Ausführen des Quellcodes

  • Wechseln zwischen Prozessen • Befehle für Unterbrechen, Durchlaufen und Fortsetzen

Wechseln zwischen Prozessen

Sie können beim Debuggen mit mehreren Prozessen verbunden sein, es ist jedoch jeweils nur ein Prozess im Debugger aktiv. Sie können den aktiven oder aktuellen Prozess auf der Symbolleiste "Debugspeicherort" oder im Fenster Prozesse festlegen. Um zwischen den Prozessen zu wechseln, müssen sich beide Prozesse im Unterbrechungsmodus befinden.

So legen Sie den aktuellen Prozess fest

  • Klicken Sie auf der Symbolleiste "Debugspeicherort" auf Prozess, um das Listenfeld Prozess anzuzeigen. Wählen Sie den Prozess aus, den Sie als aktuellen Prozess festlegen möchten.

    Zwischen Prozessen wechseln

    Wenn die Symbolleiste Debugspeicherort nicht sichtbar ist, wählen Sie Extras, Anpassen aus. Klicken Sie auf der Registerkarte Symbolleisten auf Debugspeicherort.

  • Öffnen Sie das Fenster Prozesse (Verknüpfung Ctrl+Alt+Z), suchen Sie den Prozess, den Sie als aktuellen Prozess festlegen möchten, und doppelklicken Sie darauf.

    Prozessfenster

    Der aktuelle Prozess ist durch einen gelben Pfeil gekennzeichnet.

Wenn Sie zu einem Projekt wechseln, wird dieses als aktueller Prozess zum Debuggen festgelegt. In den angezeigten Debuggerfenstern ist der Zustand für den aktuellen Prozess angegeben, und alle Befehle für die schrittweise Ausführung beeinflussen nur den aktuellen Prozess.

Zurück nach obenWechseln zwischen Prozessen, Unterbrechen und Fortsetzen der Ausführung, schrittweises Ausführen des Quellcodes

Zurück nach obenInhalt

Befehle für Unterbrechen, Durchlaufen und Fortsetzen

Hinweis

Standardmäßig beeinflussen die Debuggerbefehle für Unterbrechen, Durchlaufen und Fortsetzen sämtliche Prozesse, die debuggt werden.Um dieses Verhalten zu ändern, finden Sie unter Konfigurieren des Ausführungsverhaltens mehrerer Prozesse

Befehl

Alle Prozesse anhalten, wenn ein Prozess anhält

Aktiviert (Standard)

Alle Prozesse anhalten, wenn ein Prozess anhält

Gelöscht

Menü Debuggen:

  • Alle unterbrechen

Alle Prozesse werden unterbrochen.

Alle Prozesse werden unterbrochen.

Menü Debuggen:

  • Continue

Alle Prozesse werden fortgesetzt.

Alle angehaltenen Prozesse werden fortgesetzt.

Menü Debuggen:

  • Einzelschritt

  • Prozedurschritt

  • Ausführen bis Rücksprung

Alle Prozesse werden während der aktuellen Prozessschritte ausgeführt.

Anschließend werden alle Prozesse unterbrochen.

Aktuelle Prozessschritte.

Angehaltene Prozesse werden fortgesetzt.

Ausgeführte Prozesse werden fortgesetzt.

Menü Debuggen:

  • Einzelschritt in aktuellem Prozess

  • Prozedurschritt in aktuellem Prozess

  • Ausführen bis Rücksprung in aktuellem Prozess

Nicht zutreffend

Aktuelle Prozessschritte.

Andere Prozesse behalten ihren vorhandenen Zustand bei (angehaltener Zustand oder Ausführzustand).

Quellcodefenster

  • Haltepunkt

Alle Prozesse werden unterbrochen.

Nur der Prozess im Quellcodefenster wird unterbrochen.

Kontextmenü des Quellcodefensters:

  • Ausführen bis Cursor

Das Quellcodefenster muss sich im aktuellen Prozess befinden.

Alle Prozesse werden ausgeführt, während der Prozess im Quellcodefenster bis zum Cursor ausgeführt und dann unterbrochen wird.

Anschließend werden alle anderen Prozesse unterbrochen.

Der Prozess im Quellcodefenster wird bis zum Cursor ausgeführt.

Andere Prozesse behalten ihren vorhandenen Zustand bei (angehaltener Zustand oder Ausführzustand).

Kontextmenü des Fensters Prozesse:

  • Prozess anhalten

Nicht zutreffend

Der ausgewählte Prozess wird angehalten.

Andere Prozesse behalten ihren vorhandenen Zustand bei (angehaltener Zustand oder Ausführzustand).

Kontextmenü des Fensters Prozesse:

  • Prozess fortsetzen

Nicht zutreffend

Der ausgewählte Prozess wird fortgesetzt.

Andere Prozesse behalten ihren vorhandenen Zustand bei (angehaltener Zustand oder Ausführzustand).

Zurück nach obenWechseln zwischen Prozessen, Unterbrechen und Fortsetzen der Ausführung, schrittweises Ausführen des Quellcodes

Zurück nach obenInhalt

Anhalten des Debuggings, Beenden und Abtrennen von Prozessen

  • Befehle für Anhalten, Beenden und Abtrennen

Durch Auswählen von Debuggen, Debuggen beenden, während mehrere Prozesse im Debugger geöffnet sind, beendet der Debugger standardmäßig alle Prozesse bzw. wird von allen Prozessen getrennt. Dies hängt davon ab, wie der Prozess im Debugger geöffnet war:

  • Wenn der aktuelle Prozess im Debugger gestartet wurde, wird dieser Prozess beendet.

  • Wenn der Debugger an den aktuellen Prozess angefügt wurde, wird er vom Prozess getrennt. Der Prozess wird weiterhin ausgeführt.

Wenn Sie beispielsweise das Debuggen eines Prozesses aus einer Visual Studio-Projektmappe gestartet haben, fügen Sie den Debugger an einen anderen, bereits ausgeführten Prozess an, und wählen Sie dann Debuggen beenden. Die Debugsitzung und der in Visual Studio gestartete Prozess werden beendet, während der angefügte Prozess weiterhin ausgeführt wird. Sie können die folgenden Schritte ausführen, um die Methode zum Beenden des Debuggings festzulegen.

Hinweis

Die Option Alle Prozesse anhalten, wenn ein Prozess anhält beeinflusst nicht das Anhalten des Debuggings bzw. das Beenden und Abtrennen von Prozessen.

So ändern Sie die Einstellung, wie "Debuggen beenden" einen einzelnen Prozess beeinflusst

  • Öffnen Sie das Fenster Prozesse (Verknüpfung Ctrl+Alt+Z). Wählen Sie einen Prozess aus, und aktivieren oder deaktivieren Sie das Kontrollkästchen Nach Beenden des Debuggings trennen.

Befehle für Anhalten, Beenden und Abtrennen

Befehl

Beschreibung

Menü Debuggen:

  • Debuggen beenden

Es sei denn, das Verhalten wird von der Option Nach Beenden des Debuggings trennen im Fenster Prozesse geändert:

  1. Die vom Debugger gestarteten Prozesse werden beendet.

  2. Angefügte Prozesse werden vom Debugger getrennt.

Menü Debuggen:

  • Alle beenden

Alle Prozesse werden beendet.

Menü Debuggen:

  • Alle trennen

Der Debugger wird von allen Prozessen getrennt.

Kontextmenü des Fensters Prozesse:

  • Prozess abtrennen

Der Debugger wird vom ausgewählten Prozess getrennt.

Andere Prozesse behalten ihren vorhandenen Zustand bei (angehaltener Zustand oder Ausführzustand).

Kontextmenü des Fensters Prozesse:

  • Prozess beenden

Der ausgewählte Prozess wird beendet.

Andere Prozesse behalten ihren vorhandenen Zustand bei (angehaltener Zustand oder Ausführzustand).

Kontextmenü des Fensters Prozesse:

  • Nach Beenden des Debuggings trennen

Wechselt zwischen dem Verhalten von Debuggen und Debuggen beenden für den ausgewählten Prozess:

  • Aktiviert: Der Debugger wird vom Prozess getrennt.

  • Deaktiviert: Der Prozess wird beendet.

Zurück nach obenAnhalten des Debuggings, Beenden und Abtrennen von Prozessen

Zurück nach obenInhalt

Siehe auch

Konzepte

Starten, Unterbrechen, schrittweise Ausführung, Ausführen von Code und Beenden des Debuggens in Visual Studio

Just-In-Time-Debuggen in Visual Studio

Weitere Ressourcen

Angeben von Symbol(PDB)- und Quelldateien im Visual Studio Debugger

Anfügen an laufende Prozesse mit dem Visual Studio Debugger

Debuggen von Multithreadanwendungen in Visual Studio