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