IDebugStackFrame3
Diese Schnittstelle erweitert, um IDebugStackFrame2 abgefangene Ausnahmen zu behandeln.
IDebugStackFrame3 : IDebugStackFrame2
Hinweise für Implementierer
Das Debugmodul (DE) implementiert diese Schnittstelle für dasselbe Objekt, das die IDebugStackFrame2-Schnittstelle implementiert, um abgefangene Ausnahmen zu unterstützen.
Hinweise für Aufrufer
Rufen Sie QueryInterface auf einer IDebugStackFrame2-Schnittstelle an, die zum Abrufen dieser Schnittstelle.
Methoden in die Vtable-Reihenfolge
Zusätzlich zu den Methoden, die von IDebugStackFrame2geerbt werden, macht die folgenden Methoden IDebugStackFrame3 .
Methode |
Beschreibung |
---|---|
Behandelt eine Ausnahme für den aktuellen Stapelrahmen vor jeder regulären Ausnahmebehandlung. |
|
Gibt einen Code Elementkontext zurück, wenn eine Stapel Entladen von durchgeführt wurden. |
Hinweise
Eine abgefangene Ausnahme besagt, dass ein Debugger eine Ausnahme verarbeiten kann, bevor alle normalen Ausnahmebehandlung routinen von der Laufzeit aufgerufen werden. Eine Ausnahme abzufangen im Prinzip besagt, dass die Laufzeit erfolgt, vortäuschen Sie, dass es sich um einen Ausnahmehandler vorhanden ist, auch wenn es nicht vorhanden ist.
IDebugStackFrame3::InterceptCurrentException wird bei allen normalen Ausnahme von Rückruf aufgerufen (die einzige Ausnahme liegt vor, wenn Sie (verwaltetem und nicht verwaltetem Code im gemischten Modus Code) debuggen. In diesem Fall wird die Ausnahme nicht während des Rückrufs der letzte Möglichkeit abgefangen werden kann). Wenn DE nicht implementiert, gibt IDebugStackFrame3oder DE einen Fehler aus IDebugStackFrame3: zurück:InterceptCurrentException (z. B. E_NOTIMPL), wird der Debugger behandelt die Ausnahme ordnungsgemäß.
Indem er eine Ausnahme abgefangen wird, kann der Debugger den Benutzern ermöglichen, Änderungen am Zustand des Programms ändern, die dann an der Stelle fortgesetzt und ausgeführt werden, in dem die Ausnahme ausgelöst wurde.
Hinweis
Abgefangene Ausnahmen werden nur in verwaltetem Code ermöglicht. h. in einem Programm, das unter der Common Language Runtime (CLR) ausgeführt wird.
Ein Debuggen Modul gibt an, dass sie Ausnahmen Unterbrechungen unterstützt, indem metricExceptions „at“ auf den Wert 1 festgelegt, indem die SetMetric-Funktion verwendet. Weitere Informationen finden Sie unter SDK-Hilfen für das Debuggen.
Anforderungen
Header: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll