Udostępnij za pośrednictwem


IDebugStackFrame3

Ten interfejs rozszerza element IDebugStackFrame2 w celu obsługi przechwyconych wyjątków.

Składnia

IDebugStackFrame3 : IDebugStackFrame2

Uwagi dotyczące implementacji

Aparat debugowania (DE) implementuje ten interfejs na tym samym obiekcie, który implementuje interfejs IDebugStackFrame2 w celu obsługi przechwyconych wyjątków.

Uwagi dotyczące wywoływania

Wywołaj metodę QueryInterface w interfejsie IDebugStackFrame2 , aby uzyskać ten interfejs.

Metody w tabeli Vtable Order

Oprócz metod dziedziczynych z elementu IDebugStackFrame2IDebugStackFrame3 uwidacznia następujące metody.

Metoda opis
InterceptCurrentException Obsługuje wyjątek dla bieżącej ramki stosu przed zwykłą obsługą wyjątków.
GetUnwindCodeContext Zwraca kontekst kodu, jeśli nastąpi odwijenie stosu.

Uwagi

Przechwycony wyjątek oznacza, że debuger może przetworzyć wyjątek przed wywołaniem normalnych procedur obsługi wyjątków przez czas wykonywania. Przechwycenie wyjątku zasadniczo oznacza, że czas wykonywania udawać, że istnieje program obsługi wyjątków, nawet jeśli nie ma.

  • Funkcja InterceptCurrentException jest wywoływana podczas wszystkich normalnych zdarzeń wywołania zwrotnego wyjątków (jedynym wyjątkiem jest debugowanie kodu w trybie mieszanym (kod zarządzany i niezarządzany), w takim przypadku wyjątek nie może zostać przechwycony podczas wywołania zwrotnego o ostatniej szansie. Jeśli de nie implementuje IDebugStackFrame3, lub DE zwraca błąd z IDebugStackFrame3::InterceptCurrentException (na przykład E_NOTIMPL), debuger będzie obsługiwać wyjątek normalnie.

Przechwycąc wyjątek, debuger może zezwolić użytkownikowi na wprowadzanie zmian w stanie debugowanego programu, a następnie wznawianie wykonywania w momencie zgłoszenia wyjątku.

Uwaga

Przechwycone wyjątki są dozwolone tylko w kodzie zarządzanym, czyli w programie uruchomionym w środowisku uruchomieniowym języka wspólnego (CLR).

Aparat debugowania wskazuje, że obsługuje przechwytywanie wyjątków przez ustawienie wartości "metricExceptions" na wartość 1 w czasie wykonywania przy użyciu SetMetric funkcji . Aby uzyskać więcej informacji, zobacz Pomocnicy zestawu SDK na potrzeby debugowania.

Wymagania

Nagłówek: msdbg.h

Przestrzeń nazw: Microsoft.VisualStudio.Debugger.Interop

Zestaw: Microsoft.VisualStudio.Debugger.Interop.dll

Zobacz też