Udostępnij za pośrednictwem


IDebugEngine2::CreatePendingBreakpoint

Tworzy oczekujący punkt przerwania w aucie debugowania (DE).

Składnia

int CreatePendingBreakpoint(
    IDebugBreakpointRequest2     pBPRequest,
    out IDebugPendingBreakpoint2 ppPendingBP
);

Parametry

pBPRequest
[in] Obiekt IDebugBreakpointRequest2 opisujący oczekujący punkt przerwania do utworzenia.

ppPendingBP
[out] Zwraca obiekt IDebugPendingBreakpoint2 reprezentujący oczekujący punkt przerwania.

Wartość zwracana

Jeśli operacja powiedzie się, zwraca wartość S_OK; w przeciwnym razie zwraca kod błędu. Zazwyczaj zwraca E_FAIL wartość , jeśli pBPRequest parametr nie jest zgodny z żadnym językiem obsługiwanym przez de parametru, jeśli pBPRequest parametr jest nieprawidłowy lub niekompletny.

Uwagi

Oczekujący punkt przerwania to zasadniczo kolekcja wszystkich informacji potrzebnych do powiązania punktu przerwania z kodem. Oczekujący punkt przerwania zwrócony z tej metody nie jest powiązany z kodem, dopóki metoda Bind nie zostanie wywołana.

Dla każdego oczekującego punktu przerwania ustawia użytkownika menedżer debugowania sesji (SDM) wywołuje tę metodę w każdym dołączonym de. Do DE należy sprawdzić, czy punkt przerwania jest prawidłowy dla programów działających w tym DE.

Gdy użytkownik ustawia punkt przerwania w wierszu kodu, de może powiązać punkt przerwania z najbliższym wierszem w dokumencie odpowiadającym temu kodzie. Dzięki temu użytkownik może ustawić punkt przerwania w pierwszym wierszu instrukcji wielowierszowej, ale powiązać go w ostatnim wierszu (gdzie cały kod jest przypisywany w informacjach debugowania).

Przykład

W poniższym przykładzie pokazano, jak zaimplementować tę metodę dla prostego CProgram obiektu. Implementacja IDebugEngine2::CreatePendingBreakpoint DE programu może następnie przekazać wszystkie wywołania do tej implementacji metody w każdym programie.

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

Zobacz też