IDebugStackFrame3

Essa interface estende IDebugStackFrame2 para lidar com exceções interceptadas.

Sintaxe

IDebugStackFrame3 : IDebugStackFrame2

Notas para implementadores

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

Observações para chamadores

Chame QueryInterface em uma IDebugStackFrame2 interface para obter essa interface.

Métodos na ordem VTable

Além dos métodos herdados de IDebugStackFrame2, IDebugStackFrame3 expõe os seguintes métodos.

Método Descrição
InterceptCurrentException Manipula uma exceção para o quadro de pilha atual antes de qualquer manipulação de exceção regular.
GetUnwindCodeContext Retorna um contexto de código se ocorrer um desenrolar de pilha.

Comentários

Uma exceção interceptada significa que um depurador pode processar uma exceção antes que qualquer rotina normal de manipulação de exceções seja chamada pelo tempo de execução. Interceptar uma exceção significa, essencialmente, fazer com que o tempo de execução finja que há um manipulador de exceção presente, mesmo quando não há.

  • InterceptCurrentException é chamado durante todos os eventos normais de retorno de chamada de exceção (a única exceção a isso é se você estiver depurando código de modo misto (código gerenciado e não gerenciado), caso em que a exceção não poderá ser interceptada durante o retorno de chamada de última chance). Se o DE não implementar IDebugStackFrame3o , ou o DE retornar um erro de IDebugStackFrame3::InterceptCurrentException (como E_NOTIMPL), o depurador manipulará a exceção normalmente.

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

Observação

As exceções interceptadas são permitidas apenas em código gerenciado, ou seja, em um programa que está sendo executado sob o CLR (Common Language Runtime).

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

Requisitos

Cabeçalho: msdbg.h

Espaço para nome: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Confira também