IDebugEngine2::CreatePendingBreakpoint

Crea un punto de interrupción pendiente en el motor de depuración (DE).

Sintaxis

int CreatePendingBreakpoint(
    IDebugBreakpointRequest2     pBPRequest,
    out IDebugPendingBreakpoint2 ppPendingBP
);

Parámetros

pBPRequest
[in] Objeto IDebugBreakpointRequest2 que describe el punto de interrupción pendiente que se va a crear.

ppPendingBP
[out] Devuelve un objeto IDebugPendingBreakpoint2 que representa el punto de interrupción pendiente.

Valor devuelto

Si la operación se realiza correctamente, devuelve S_OK; de lo contrario, devuelve un código de error. Normalmente, devuelve E_FAIL si el pBPRequest parámetro no coincide con ningún idioma admitido por el de si el pBPRequest parámetro no es válido o está incompleto.

Comentarios

Un punto de interrupción pendiente es esencialmente una colección de toda la información necesaria para enlazar un punto de interrupción al código. El punto de interrupción pendiente devuelto desde este método no está enlazado al código hasta que se llama al método Bind .

Para cada punto de interrupción pendiente, el administrador de depuración de sesión (SDM) llama a este método en cada DE asociado. Es hasta el DE para comprobar que el punto de interrupción es válido para los programas que se ejecutan en ese DE.

Cuando el usuario establece un punto de interrupción en una línea de código, el DE es libre de enlazar el punto de interrupción a la línea más cercana del documento que corresponde a este código. Esto permite al usuario establecer un punto de interrupción en la primera línea de una instrucción de varias líneas, pero enlazarlo en la última línea (donde se atribuye todo el código en la información de depuración).

Ejemplo

En el ejemplo siguiente se muestra cómo implementar este método para un objeto simple CProgram . La implementación del DE IDebugEngine2::CreatePendingBreakpoint podría reenviar todas las llamadas a esta implementación del método en cada programa.

HRESULT CProgram::CreatePendingBreakpoint(IDebugBreakpointRequest2* pBPRequest, IDebugPendingBreakpoint2** ppPendingBP)
{
    // Create and initialize the CPendingBreakpoint object.
    CComObject<CPendingBreakpoint> *pPending;
    CComObject<CPendingBreakpoint>::CreateInstance(&pPending);
    pPending->Initialize(pBPRequest, m_pInterp, m_pCallback, m_pEngine);
    return pPending->QueryInterface(ppPendingBP);
}

Consulte también