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.