Partilhar via


IDebugStackFrame3

Essa interface estende IDebugStackFrame2 para manipular exceções interceptadas.

IDebugStackFrame3 : IDebugStackFrame2

Observações para Implementadores

O mecanismo de depuração (DE) implementa essa interface no mesmo objeto que implementa o IDebugStackFrame2 interface para oferecer suporte a exceções interceptadas.

Observações para chamadores

Chame QueryInterface em um IDebugStackFrame2 interface para obter esta interface.

Métodos na ordem de Vtable

Com os métodos herdados da IDebugStackFrame2, IDebugStackFrame3 expõe os métodos a seguintes.

Método

Descrição

IDebugStackFrame3::InterceptCurrentException

Manipula uma exceção para o quadro de pilha atual antes de qualquer manipulação de exceção regular.

IDebugStackFrame3::GetUnwindCodeContext

Retorna um contexto de código se um desenrolamento de pilha fosse ocorrer.

Comentários

Uma exceção interceptada significa que um depurador pode processar uma exceção antes de quaisquer rotinas de manipulação de exceção normal são chamadas pelo tempo de execução. Interceptar uma exceção essencialmente significa fazer com que o tempo de execução fingir que existe um manipulador de exceção presente, mesmo quando não há.

IDebugStackFrame3::InterceptCurrentExceptioné chamado durante todos os eventos de retorno de chamada de exceção normal (a única exceção é se você está depurando o código de modo misto (código gerenciado e não gerenciado), caso em que a exceção não pode ser interceptada durante o retorno de chamada de última chance). Se não implementa o DE IDebugStackFrame3, ou o DE retorna um erro de IDebugStackFrame3::InterceptCurrentException (como E_NOTIMPL), e em seguida, o depurador manipulará a exceção normalmente.

Por interceptar uma exceção, o depurador pode permitir que o usuário faça alterações para o estado do programa que está sendo depurado e, em seguida, continuar a execução no ponto onde a exceção foi lançada.

Dica

Interceptado exceções são permitidas apenas em código gerenciado, ou seja, em um programa que está sendo executado sob o tempo de execução do CLR (Common Language).

Um mecanismo de depuração indica que ele oferece suporte a exceções interceptando definindo-se "metricExceptions" para um valor de 1 em tempo de execução usando o SetMetric função. Para obter mais informações, consulte SDK auxiliares para depuração.

Requisitos

Cabeçalho: msdbg.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Consulte também

Referência

IDebugStackFrame2

SDK auxiliares para depuração

Conceitos

Interfaces principais