Freigeben über


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

IDebugStackFrame3::InterceptCurrentException

Behandelt eine Ausnahme für den aktuellen Stapelrahmen vor jeder regulären Ausnahmebehandlung.

IDebugStackFrame3::GetUnwindCodeContext

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

Siehe auch

Referenz

IDebugStackFrame2

SDK-Hilfen für das Debuggen

Konzepte

Kern-Schnittstellen