Betriebsmodi
Es gibt drei Modi, in denen das IDE arbeiten kann:
-
Wie Ihre benutzerdefinierte Debug-Engine (DE) zwischen diesen Modi wechselt, ist eine Implementierungsentscheidung, für die Sie mit den Übergangsmechanismen vertraut sein müssen. Der DE kann diese Modi direkt implementieren, muss es aber nicht. Bei diesen Modi handelt es sich eigentlich um Debuggen eines Paketsmodi, die auf der Grundlage von Benutzeraktionen oder Ereignissen aus dem DE umgeschaltet werden. So wird beispielsweise der Übergang vom Betriebsmodus in den Pausenmodus durch ein Anhalteereignis des DE eingeleitet. Der Übergang vom Pause- in den Run- oder Step-Modus wird vom Benutzer durch Operationen wie Step oder Execute eingeleitet. Weitere Informationen zu DE-Übergängen finden Sie unter Kontrolle der Ausführung.
Entwurfsmodus
Der Entwurfsmodus ist der Nichtausführungsstatus des Visual Studio-Debugging, in dem Sie Debugging-Funktionen in Ihrer Anwendung festlegen können.
Nur wenige Debugging-Funktionen werden im Entwurfsmodus verwendet. Ein Entwickler kann Haltepunkte setzen oder Überwachungsausdrücke erstellen. Die DE wird niemals geladen oder aufgerufen, wenn sich die IDE im Entwurfsmodus befindet. Die Interaktion mit dem DE findet nur während des Lauf- und Pausenmodus statt.
Ausführungsmodus
Der Ausführungsmodus tritt auf, wenn ein Programm in einer Debugging-Session in der IDE ausgeführt wird. Die Anwendung läuft, bis sie beendet wird, bis ein Haltepunkt erreicht wird oder bis eine Ausnahme ausgelöst wird. Wenn die Anwendung bis zur Beendigung läuft, wechselt der DE in den Entwurfsmodus. Wenn ein Haltepunkt erreicht oder eine Ausnahme ausgelöst wird, wechselt der DE in den Unterbrechungsmodus.
Pause-Modus
Der Break-Modus tritt ein, wenn die Ausführung des Debugging-Programms unterbrochen wird. Der Unterbrechungsmodus bietet dem Entwickler eine Momentaufnahme der Anwendung zum Zeitpunkt der Unterbrechung und ermöglicht es ihm, den Zustand der Anwendung zu analysieren und zu ändern, wie die Anwendung ausgeführt wird. Der Entwickler kann den Code anzeigen und bearbeiten, Daten untersuchen oder ändern, die Anwendung neu starten, die Ausführung beenden oder die Ausführung an derselben Stelle fortsetzen.
Der Pausenmodus wird aktiviert, wenn der DE ein synchrones Stoppereignis sendet. Synchrone Anhalteereignisse, auch Anhalteereignisse genannt, benachrichtigen den Session Debug Manager (SDM) und die IDE, dass die zu debuggende Anwendung die Ausführung von Code beendet hat. Die Schnittstellen IDebugBreakpointEvent2 und IDebugExceptionEvent2 sind Beispiele für Anhalteereignisse.
Anhalteereignisse werden durch einen Aufruf einer der folgenden Methoden fortgesetzt, die den Debugger vom Break-Modus in den Run- oder Step-Modus überführen:
Schritt-Modus
Der Schrittmodus tritt auf, wenn das Programm zur nächsten Codezeile oder in, über oder aus einer Funktion schreitet. Ein Schritt wird durch den Aufruf der Methode Step ausgeführt. Diese Methode erfordert DWORD
, die die Aufzählungen STEPUNIT und STEPKIND als Eingabeparameter angeben.
Wenn das Programm erfolgreich zur nächsten Codezeile oder in eine Funktion springt oder bis zum Cursor oder zu einem gesetzten Haltepunkt läuft, schaltet der DE automatisch in den Break-Modus zurück.