Share via


IDebugEngine2::Attach

Attache un moteur de débogage (DE) à un programme ou à un programme. Appelé par le gestionnaire de débogage de session (SDM) lorsque le DE est en cours d’exécution dans le SDM.

Syntaxe

int Attach( 
   IDebugProgram2[]     pProgram,
   IDebugProgramNode2[] rgpProgramNodes,
   uint                 celtPrograms,
   IDebugEventCallback2 pCallback,
   Enum_ATTACH_REASON   dwReason
);

Paramètres

pProgram
[in] Tableau d’objets IDebugProgram2 qui représentent les programmes à attacher. Il s’agit de programmes de port.

rgpProgramNodes
[in] Tableau d’objets IDebugProgramNode2 qui représentent des nœuds de programme, un pour chaque programme. Les nœuds de programme de ce tableau représentent les mêmes programmes que dans pProgram. Les nœuds de programme sont donnés afin que le DE puisse identifier les programmes auxquels attacher.

celtPrograms
[in] Nombre de programmes et/ou de nœuds de programme dans les pProgram tableaux et rgpProgramNodes les tableaux.

pCallback
[in] Objet IDebugEventCallback2 à utiliser pour envoyer des événements de débogage au SDM.

dwReason
[in] Valeur de l’énumération ATTACH_REASON qui spécifie la raison de l’attachement de ces programmes. Pour plus d'informations, consultez la section Notes.

Valeur de retour

En cas de réussite, retourne S_OK , sinon, retourne un code d'erreur.

Notes

Il existe trois raisons de s’attacher à un programme, comme suit :

  • ATTACH_REASON_LAUNCH indique que le DE est attaché au programme, car l’utilisateur a lancé le processus qui le contient.

  • ATTACH_REASON_USER indique que l’utilisateur a explicitement demandé à l’utilisateur de s’attacher à un programme (ou au processus qui contient un programme).

  • ATTACH_REASON_AUTO indique que le DE est attaché à un programme particulier, car il débogue déjà d’autres programmes dans un processus particulier. Il s’agit également de l’attachement automatique.

    Lorsque cette méthode est appelée, la fonction DE doit envoyer ces événements dans la séquence :

  1. IDebugEngineCreateEvent2 (s’il n’a pas déjà été envoyé pour une instance particulière du moteur de débogage)

  2. IDebugProgramCreateEvent2

  3. IDebugLoadCompleteEvent2

    En outre, si la raison de l’attachement est ATTACH_REASON_LAUNCH, le DE doit envoyer l’événement IDebugEntryPointEvent2 .

    Une fois que le DE obtient l’objet IDebugProgramNode2 correspondant au programme en cours de débogage, il peut être interrogé pour n’importe quelle interface privée.

    Avant d’appeler les méthodes d’un nœud de programme dans le tableau donné par pProgram ou rgpProgramNodes, si nécessaire, l’emprunt d’identité doit être activé sur l’interface IDebugProgram2 qui représente le nœud du programme. Normalement, toutefois, cette étape n’est pas nécessaire. Pour plus d’informations, consultez Problèmes de sécurité.

Voir aussi