IDebugStackFrame3
Diese Schnittstelle erweitert IDebugStackFrame2 , um abgefangene Ausnahmen zu verarbeiten.
Syntax
IDebugStackFrame3 : IDebugStackFrame2
Hinweise für Implementierer
Das Debugmodul (DE) implementiert diese Schnittstelle auf demselben Objekt, das die IDebugStackFrame2-Schnittstelle implementiert, um abgefangene Ausnahmen zu unterstützen.
Hinweise für Aufrufer
Rufen Sie QueryInterface auf einer IDebugStackFrame2
Schnittstelle auf, um diese Schnittstelle abzurufen.
Methoden in Vtable-Reihenfolge
Zusätzlich zu den von IDebugStackFrame2IDebugStackFrame3
geerbten Methoden werden die folgenden Methoden verfügbar gemacht.
Methode | Beschreibung |
---|---|
InterceptCurrentException | Behandelt eine Ausnahme für den aktuellen Stapelframe vor einer normalen Ausnahmebehandlung. |
GetUnwindCodeContext | Gibt einen Codekontext zurück, wenn ein Stapel entspannt werden soll. |
Hinweise
Eine abgefangene Ausnahme bedeutet, dass ein Debugger eine Ausnahme verarbeiten kann, bevor normale Ausnahmebehandlungsroutinen zur Laufzeit aufgerufen werden. Das Abfangen einer Ausnahme bedeutet im Wesentlichen, dass die Laufzeit vorgibt, dass ein Ausnahmehandler vorhanden ist, auch wenn nicht.
- InterceptCurrentException wird während aller normalen Ausnahmerückrufereignisse aufgerufen (die einzige Ausnahme hierfür ist das Debuggen von Gemischtmoduscode (verwalteter und nicht verwalteter Code), in diesem Fall kann die Ausnahme während des Letzten-Chance-Rückrufs nicht abgefangen werden. Wenn die DE nicht implementiert
IDebugStackFrame3
wird oder die DE einen Fehler von IDebugStackFrame3::InterceptCurrentException
(zE_NOTIMPL
. B. ) zurückgibt, behandelt der Debugger die Ausnahme normal.
Durch Abfangen einer Ausnahme kann der Debugger dem Benutzer erlauben, Änderungen am Zustand des zu debuggenden Programms vorzunehmen und dann die Ausführung an dem Punkt fortzusetzen, an dem die Ausnahme ausgelöst wurde.
Hinweis
Abgefangene Ausnahmen sind nur in verwaltetem Code zulässig, d. a. in einem Programm, das unter der Common Language Runtime (CLR) ausgeführt wird.
Ein Debugmodul gibt an, dass es das Abfangen von Ausnahmen unterstützt, indem "metricExceptions" auf einen Wert von 1 zur Laufzeit mithilfe der SetMetric
Funktion festgelegt wird. Weitere Informationen finden Sie unter SDK-Hilfsprogramme zum Debuggen.
Anforderungen
Header: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll