Поделиться через


IDebugEngine2::CreatePendingBreakpoint

Создает ожидающая точка останова в подсистеме отладки (DE).

Синтаксис

int CreatePendingBreakpoint(
    IDebugBreakpointRequest2     pBPRequest,
    out IDebugPendingBreakpoint2 ppPendingBP
);

Параметры

pBPRequest
[in] Объект IDebugBreakpointRequest2 , описывающий ожидающую точку останова для создания.

ppPendingBP
[out] Возвращает объект IDebugPendingBreakpoint2 , представляющий ожидающую точку останова.

Возвращаемое значение

В случае успешного выполнения возвращается S_OK; в противном случае возвращается код ошибки. Обычно возвращается E_FAIL , если pBPRequest параметр не соответствует языку, поддерживаемому DE, если pBPRequest параметр недопустим или неполным.

Замечания

Ожидающая точка останова по сути представляет собой коллекцию всех сведений, необходимых для привязки точки останова к коду. Ожидающая точка останова, возвращаемая этим методом, не привязана к коду до вызова метода Bind .

Для каждой ожидающей точки останова, определяемой пользователем, диспетчер отладки сеансов вызывает этот метод в каждом присоединенном 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);
}

См. также