IDebugEngine2::CreatePendingBreakpoint
Crea un punto di interruzione in sospeso nel motore di debug (DE).
Sintassi
int CreatePendingBreakpoint(
IDebugBreakpointRequest2 pBPRequest,
out IDebugPendingBreakpoint2 ppPendingBP
);
Parametri
pBPRequest
[in] Oggetto IDebugBreakpointRequest2 che descrive il punto di interruzione in sospeso da creare.
ppPendingBP
[out] Restituisce un oggetto IDebugPendingBreakpoint2 che rappresenta il punto di interruzione in sospeso.
Valore restituito
Se ha esito positivo, restituisce S_OK
; in caso contrario, restituisce un codice di errore. In genere restituisce E_FAIL
se il pBPRequest
parametro non corrisponde ad alcuna lingua supportata dalla de di se il pBPRequest
parametro non è valido o incompleto.
Osservazioni:
Un punto di interruzione in sospeso è essenzialmente una raccolta di tutte le informazioni necessarie per associare un punto di interruzione al codice. Il punto di interruzione in sospeso restituito da questo metodo non è associato al codice fino a quando non viene chiamato il metodo Bind .
Per ogni punto di interruzione in sospeso impostato dall'utente, il gestore di debug della sessione chiama questo metodo in ogni DE collegato. Spetta al de verificare che il punto di interruzione sia valido per i programmi in esecuzione in tale de.
Quando l'utente imposta un punto di interruzione su una riga di codice, il de è libero di associare il punto di interruzione alla riga più vicina del documento corrispondente a questo codice. Ciò consente all'utente di impostare un punto di interruzione nella prima riga di un'istruzione su più righe, ma associarlo all'ultima riga (dove tutto il codice è attribuito nelle informazioni di debug).
Esempio
Nell'esempio seguente viene illustrato come implementare questo metodo per un oggetto semplice CProgram
. L'implementazione de di IDebugEngine2::CreatePendingBreakpoint
può quindi inoltrare tutte le chiamate a questa implementazione del metodo in ogni programma.
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);
}