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