IDebugEngine2::CreatePendingBreakpoint

DE(디버그 엔진)에 보류 중인 중단점을 만듭니다.

구문

int CreatePendingBreakpoint(
    IDebugBreakpointRequest2     pBPRequest,
    out IDebugPendingBreakpoint2 ppPendingBP
);

매개 변수

pBPRequest
[in] 만들 보류 중인 중단점을 설명하는 IDebugBreakpointRequest2 개체입니다.

ppPendingBP
[out] 보류 중인 중단점을 나타내는 IDebugPendingBreakpoint2 개체를 반환합니다.

Return Value

성공하면 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);
}

참고 항목