IDebugStackFrame3
Этот интерфейс расширяет IDebugStackFrame2 для обработки перехватированных исключений.
Синтаксис
IDebugStackFrame3 : IDebugStackFrame2
Примечания для разработчиков
Модуль отладки (DE) реализует этот интерфейс на том же объекте, который реализует интерфейс IDebugStackFrame2 для поддержки перехватированных исключений.
Заметки для вызывающих абонентов
Вызов QueryInterface в интерфейсе IDebugStackFrame2
для получения этого интерфейса.
Методы в порядке таблицы Vtable
Помимо методов, унаследованных от IDebugStackFrame2, IDebugStackFrame3
предоставляет следующие методы.
Метод | Description |
---|---|
InterceptCurrentException | Обрабатывает исключение для текущего кадра стека перед любой регулярной обработкой исключений. |
GetUnwindCodeContext | Возвращает контекст кода, если будет происходить очистка стека. |
Замечания
Перехваченное исключение означает, что отладчик может обработать исключение, прежде чем все обычные подпрограммы обработки исключений вызываются временем выполнения. Перехват исключения по сути означает, что время выполнения притворяется, что существует обработчик исключений, даже если нет.
- InterceptCurrentException вызывается во время всех обычных событий обратного вызова исключений (единственным исключением является отладка кода смешанного режима (управляемый и неуправляемый код), в этом случае исключение не может быть перехвачено во время обратного вызова последнего шанса. Если de не реализуется
IDebugStackFrame3
, или DE возвращает ошибку из IDebugStackFrame3::InterceptCurrentException
(напримерE_NOTIMPL
, ), отладчик будет обрабатывать исключение обычно.
Перехватив исключение, отладчик может разрешить пользователю вносить изменения в состояние отлаживаемой программы, а затем возобновлять выполнение в точке возникновения исключения.
Примечание.
Перехватанные исключения разрешены только в управляемом коде, т. е. в программе, работающей в среде CLR.
Подсистема отладки указывает, что она поддерживает перехват исключений, задав параметр "metricExceptions" значение 1 во время выполнения с помощью SetMetric
функции. Дополнительные сведения см. в справке по пакету SDK для отладки.
Requirements
Заголовок: msdbg.h
Пространство имен: Microsoft.VisualStudio.Debugger.Interop
Сборка: Microsoft.VisualStudio.Debugger.Interop.dll