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ładE_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