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
IDebugStackFrame3
o , ou o DE retornar um erro de IDebugStackFrame3::InterceptCurrentException
(comoE_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