Freigeben über


IDebugEngine2::CreatePendingBreakpoint

Erstellt einen anstehenden Haltepunkt im Modul (Debuggen). DE

HRESULT CreatePendingBreakpoint( 
   IDebugBreakpointRequest2*  pBPRequest,
   IDebugPendingBreakpoint2** ppPendingBP
);
int CreatePendingBreakpoint( 
   IDebugBreakpointRequest2     pBPRequest,
   out IDebugPendingBreakpoint2 ppPendingBP
);

Parameter

Rückgabewert

Bei Erfolg gibt S_OKzurück. andernfalls gibt einen Fehlercode zurück. Gibt üblicherweise E_FAIL zurück, wenn der pBPRequest-Parameter keine Sprache entspricht, die durch DE von unterstützt wird, wenn der pBPRequest-Parameter ungültig oder unvollständig ist.

Hinweise

Ein anstehender Haltepunkt ist im Grunde eine Auflistung aller Informationen, die benötigt werden, um einen Haltepunkt in den Code zu binden. Der ausstehende Haltepunkt, der aus dieser Methode zurückgegeben werden, werden nicht in den Code gebunden, bis die IDebugPendingBreakpoint2::Bindung-Methode aufgerufen wurde.

Für jeden anstehenden Haltepunkt ruft die Benutzer der Debug- Manager, legt der Sitzung (SDM) diese Methode in jedem angefügten DE an. Er ist so viele DE sicherzustellen, dass der Haltepunkt für Programme gültig ist, die in diesem DE ausgeführt werden.

Wenn die Benutzer legt einen Haltepunkt auf eine Codezeile, DE entscheiden, ob der Haltepunkt an der nächsten Zeile im Dokument zu binden, das für diesen Code entspricht. Auf diese Weise ist es möglich, dass der Benutzer einen Haltepunkt in der ersten Zeile einer mehrzeiligen Anweisung ändert, wird aber in der letzten Zeile (wobei der gesamte Code in den Debuginformationen attributiert ist.)

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie diese Methode für ein einfaches CProgram-Objekt implementiert. Die DEs Implementierung IDebugEngine2::CreatePendingBreakpoint konnte alle Aufrufe dieser Implementierung der Methode in jedem Programm weiterleiten.

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

Siehe auch

Referenz

IDebugEngine2

IDebugPendingBreakpoint2::Bindung

IDebugBreakpointRequest2

IDebugPendingBreakpoint2