IDebugEngine2::CreatePendingBreakpointIDebugEngine2::CreatePendingBreakpoint

Crée un point d’arrêt en attente dans le moteur de débogage (DE).Creates a pending breakpoint in the debug engine (DE).

SyntaxeSyntax

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

ParamètresParameters

pBPRequest
[in] Un IDebugBreakpointRequest2 objet qui décrit le point d’arrêt en attente à créer.[in] An IDebugBreakpointRequest2 object that describes the pending breakpoint to create.

ppPendingBP
[out] Retourne un IDebugPendingBreakpoint2 objet qui représente le point d’arrêt en attente.[out] Returns an IDebugPendingBreakpoint2 object that represents the pending breakpoint.

Valeur de retourReturn Value

En cas de réussite, retourne S_OK; sinon, retourne un code d’erreur.If successful, returns S_OK; otherwise, returns an error code. Retourne généralement E_FAIL si le pBPRequest paramètre ne correspond pas à n’importe quel langage pris en charge par le DE if le pBPRequest paramètre est non valide ou incomplète.Typically returns E_FAIL if the pBPRequest parameter does not match any language supported by the DE of if the pBPRequest parameter is invalid or incomplete.

NotesRemarks

Un point d’arrêt en attente est essentiellement une collection de toutes les informations nécessaires pour lier un point d’arrêt au code.A pending breakpoint is essentially a collection of all the information needed to bind a breakpoint to code. Le point d’arrêt en attente retournée par cette méthode n’est pas lié au code jusqu'à ce que le lier méthode est appelée.The pending breakpoint returned from this method is not bound to code until the Bind method is called.

Pour chaque point d’arrêt en attente de l’utilisateur définit, le Gestionnaire de session de débogage (SDM) appelle cette méthode dans chaque DE attaché.For each pending breakpoint the user sets, the session debug manager (SDM) calls this method in each attached DE. C’est à la DE vérifier que le point d’arrêt est valide pour les programmes en cours d’exécution dans ce DE.It is up to the DE to verify that the breakpoint is valid for programs running in that DE.

Lorsque l’utilisateur définit un point d’arrêt sur une ligne de code, la D’est gratuite lier le point d’arrêt à la ligne la plus proche dans le document qui correspond à ce code.When the user sets a breakpoint on a line of code, the DE is free to bind the breakpoint to the closest line in the document that corresponds to this code. Cela permet à l’utilisateur de définir un point d’arrêt sur la première ligne d’une instruction sur plusieurs lignes, mais la lier à la dernière ligne (où tout le code est attribué dans les informations de débogage).This makes it possible for the user to set a breakpoint on the first line of a multi-line statement, but bind it on the last line (where all the code is attributed in the debug information).

ExempleExample

L’exemple suivant montre comment implémenter cette méthode pour une simple CProgram objet.The following example shows how to implement this method for a simple CProgram object. Implémentation de la DE la IDebugEngine2::CreatePendingBreakpoint puis Impossible pour transférer tous les appels à cette implémentation de la méthode dans chaque programme.The DE's implementation of the IDebugEngine2::CreatePendingBreakpoint could then forward all calls to this implementation of the method in each program.

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

Voir aussiSee Also

IDebugEngine2 IDebugEngine2
Lier Bind
IDebugBreakpointRequest2 IDebugBreakpointRequest2
IDebugPendingBreakpoint2IDebugPendingBreakpoint2