Share via


IDebugStackFrame3

Esta interfaz extiende IDebugStackFrame2 para controlar las excepciones interceptadas.

Sintaxis

IDebugStackFrame3 : IDebugStackFrame2

Notas para los implementadores

El motor de depuración (DE) implementa esta interfaz en el mismo objeto que implementa la interfaz IDebugStackFrame2 para admitir excepciones interceptadas.

Notas para autores de la llamada

Llame a QueryInterface en una IDebugStackFrame2 interfaz para obtener esta interfaz.

Métodos en orden de Vtable

Además de los métodos heredados de IDebugStackFrame2, IDebugStackFrame3 expone los métodos siguientes.

Method Descripción
InterceptCurrentException Controla una excepción para el marco de pila actual antes de cualquier control de excepciones normal.
GetUnwindCodeContext Devuelve un contexto de código si se ha producido un desenredado de pila.

Comentarios

Una excepción interceptada significa que un depurador puede procesar una excepción antes de que el tiempo de ejecución llame a las rutinas normales de control de excepciones. La interceptación de una excepción básicamente significa hacer que el tiempo de ejecución pretenda que hay un controlador de excepciones presente incluso cuando no lo haya.

  • Se llama a InterceptCurrentException durante todos los eventos de devolución de llamada de excepción normales (la única excepción a esto es si está depurando código en modo mixto (código administrado y no administrado), en cuyo caso la excepción no se puede interceptar durante la última devolución de llamada de oportunidad. Si el DE no implementa IDebugStackFrame3, o el DE devuelve un error de IDebugStackFrame3::InterceptCurrentException (como E_NOTIMPL), el depurador controlará la excepción normalmente.

Al interceptar una excepción, el depurador puede permitir al usuario realizar cambios en el estado del programa que se está depurando y, a continuación, reanudar la ejecución en el punto donde se produjo la excepción.

Nota:

Las excepciones interceptadas solo se permiten en código administrado, es decir, en un programa que se ejecuta en Common Language Runtime (CLR).

Un motor de depuración indica que admite la interceptación de excepciones estableciendo "metricExceptions" en un valor de 1 en tiempo de ejecución mediante la SetMetric función . Para obtener más información, consulte Sdk Helpers for Debugging (Asistentes de SDK para depuración).

Requisitos

Encabezado: msdbg.h

Espacio de nombres: Microsoft.VisualStudio.Debugger.Interop

Ensamblado: Microsoft.VisualStudio.Debugger.Interop.dll

Consulte también