Compartir a través de


Métodos relacionados con el punto de interrupción

Un motor de depuración (DE) debe admitir la configuración de puntos de interrupción. La depuración de Visual Studio admite los siguientes tipos de puntos de interrupción:

  • Bound

    Se solicita a través de la interfaz de usuario y se enlaza correctamente a una ubicación de código especificada

  • Pending

    Se solicita a través de la interfaz de usuario, pero aún no se ha enlazado a instrucciones reales

Debate

Por ejemplo, se produce un punto de interrupción pendiente cuando las instrucciones aún no se han cargado. Cuando se carga el código, los puntos de interrupción pendientes intentan enlazarse al código en la ubicación indicada para insertar instrucciones de interrupción en el código. Los eventos se envían al administrador de depuración de sesión (SDM) para indicar un enlace correcto o notificar que hubo errores de enlace.

Un punto de interrupción pendiente también administra su propia lista interna de puntos de interrupción enlazados correspondientes. Un punto de interrupción pendiente puede provocar la inserción de muchos puntos de interrupción en el código. La interfaz de usuario de depuración de Visual Studio muestra una vista de árbol de puntos de interrupción pendientes y sus puntos de interrupción enlazados correspondientes.

La creación y el uso de puntos de interrupción pendientes requieren la implementación del método IDebugEngine2::CreatePendingBreakpoint, así como los siguientes métodos de las interfaces IDebugPendingBreakpoint2.

Method Descripción
CanBind Determina si un punto de interrupción pendiente especificado puede enlazarse a una ubicación de código.
Bind Enlaza un punto de interrupción pendiente especificado a una o varias ubicaciones de código.
GetState Obtiene el estado de un punto de interrupción pendiente.
GetBreakpointRequest Obtiene la solicitud de punto de interrupción utilizada para crear un punto de interrupción pendiente.
Habilitar Alterna el estado habilitado de un punto de interrupción pendiente.
EnumBoundBreakpoints Enumera todos los puntos de interrupción enlazados desde un punto de interrupción pendiente.
EnumErrorBreakpoints Enumera todos los puntos de interrupción de error resultantes de un punto de interrupción pendiente.
Eliminar Elimina un punto de interrupción pendiente y todos los puntos de interrupción enlazados de él.

Para enumerar los puntos de interrupción enlazados y los puntos de interrupción de error, debe implementar todos los métodos de IEnumDebugBoundBreakpoints2 y IEnumDebugErrorBreakpoints2.

Los puntos de interrupción pendientes que se enlazan a una ubicación de código requieren la implementación de los siguientes métodos IDebugBoundBreakpoint2.

Method Descripción
GetPendingBreakpoint Obtiene el punto de interrupción pendiente que contiene un punto de interrupción.
GetState Obtiene el estado de un punto de interrupción enlazado.
GetBreakpointResolution Obtiene la resolución de puntos de interrupción que describe un punto de interrupción.
Habilitar Habilita o deshabilita un punto de interrupción.
Eliminar Elimina un punto de interrupción enlazado.

La información de resolución y solicitud requiere la implementación de los siguientes métodos IDebugBreakpointResolution2.

Method Descripción
GetBreakpointType Obtiene el tipo del punto de interrupción representado por una resolución.
GetResolutionInfo Obtiene la información de resolución de puntos de interrupción que describe un punto de interrupción.

La resolución de errores que pueden producirse durante el enlace requiere la implementación de los siguientes métodos IDebugErrorBreakpoint2.

Method Descripción
GetPendingBreakpoint Obtiene el punto de interrupción pendiente que contiene un punto de interrupción de error.
GetBreakpointResolution Obtiene la resolución de errores de punto de interrupción que describe un punto de interrupción de error.

La resolución de errores que pueden producirse durante el enlace también requiere los siguientes métodos IDebugErrorBreakpointResolution2.

Method Descripción
GetBreakpointType Obtiene el tipo de punto de interrupción.
GetResolutionInfo Obtiene la información de resolución de un punto de interrupción.

La visualización del código fuente en un punto de interrupción requiere que implemente los métodos de IDebugStackFrame2::GetDocumentContext o los métodos de IDebugStackFrame2::GetCodeContext.

Consulte también