Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un motor de depuración (DE) debe admitir el establecimiento de puntos de interrupción. La depuración de Visual Studio admite los siguientes tipos de puntos de interrupción:
Límite
Solicitado a través de la interfaz de usuario y enlazado correctamente a una ubicación de código especificada
Pendiente
Solicitado a través de la interfaz de usuario, pero aún no enlazado a instrucciones reales
Debate
Por ejemplo, se produce un punto de interrupción pendiente cuando las instrucciones aún no se cargan. Cuando se carga el código, los puntos de interrupción pendientes intentan vincularse al código en la ubicación especificada, es decir, 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 interfaces IDebugPendingBreakpoint2 .
| Método | Description |
|---|---|
| CanBind | Determina si un punto de interrupción pendiente especificado puede enlazarse a una ubicación de código. |
| Atar | 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 vinculados a é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 de IEnumDebugErrorBreakpoints2.
Los puntos de interrupción pendientes que se vinculan a una ubicación de código requieren la implementación de los siguientes métodos IDebugBoundBreakpoint2.
| Método | Description |
|---|---|
| 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 vinculado. |
| 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 .
| Método | Description |
|---|---|
| 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 .
| Método | Description |
|---|---|
| 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 de IDebugErrorBreakpointResolution2.
| Método | Description |
|---|---|
| GetBreakpointType | Obtiene el tipo de un 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.