IDebugEngine2::CreatePendingBreakpoint

在调试引擎(DE)中创建挂起的断点。

语法

int CreatePendingBreakpoint(
    IDebugBreakpointRequest2     pBPRequest,
    out IDebugPendingBreakpoint2 ppPendingBP
);

参数

pBPRequest
[in]描述 要创建的挂起断点的 IDebugBreakpointRequest2 对象。

ppPendingBP
[out]返回一个 IDebugPendingBreakpoint2 对象,该对象代表挂起的断点。

返回值

如果成功,则返回 S_OK;否则,返回错误代码。 如果pBPRequest参数与 DE 支持的任何语言不匹配(如果参数无效或不完整),pBPRequest则通常返回E_FAIL该参数。

备注

挂起断点本质上是将断点绑定到代码所需的所有信息的集合。 在调用 Bind 方法之前,从此方法返回的挂起断点不会绑定到代码。

对于用户设置的每个挂起断点,会话调试管理器(SDM)在每个附加 DE 中调用此方法。 由 DE 负责验证断点是否对在该 DE 中运行的程序有效。

当用户在代码行上设置断点时,DE 可以自由地将断点绑定到与此代码相对应的文档中最近的行。 这样,用户就可以在多行语句的第一行上设置断点,但在最后一行(其中所有代码都归结于调试信息中)。

示例

以下示例演示如何为简单 CProgram 对象实现此方法。 然后,DE 的实现 IDebugEngine2::CreatePendingBreakpoint 可以将所有调用转发到每个程序中的方法的此实现。

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);
}

另请参阅