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 IDebugStackFrame3wird oder die DE einen Fehler von IDebugStackFrame3::InterceptCurrentException (z E_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

Siehe auch