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