Partager via


IDebugEngine2 : : Attachement

joint un moteur de débogage (DE) à un programme ou programme. Appelé par le gestionnaire de débogage de session (SDM) lorsque le De exécute in-process au SDM.

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

Paramètres

  • pProgram
    [in] Un tableau d'objets d' IDebugProgram2 qui représentent des programmes à joindre. ce sont des programmes de port.

  • rgpProgramNodes
    [in] Un tableau d'objets d' IDebugProgramNode2 qui représentent des nœuds de programme, un pour chaque programme. Les nœuds de programme dans ce tableau représentent les mêmes programmes que dans pProgram. Les nœuds de programme sont fournis afin que le De puisse identifier les programmes pour attacher.

  • celtPrograms
    [in] Numéro de programmes et/ou de nœuds de programme dans les tableaux d' pProgram et d' rgpProgramNodes .

  • pCallback
    [in] l'objet d' IDebugEventCallback2 à utiliser pour envoyer des événements de débogage au SDM.

  • dwReason
    [in] une valeur de l'énumération d' ATTACH_REASON qui spécifie la raison pour joindre 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 pour attacher le débogueur à un programme, comme suit :

  • ATTACH_REASON_LAUNCH indique que le De s'attache au programme étant donné que l'utilisateur a lancé le processus qui le contient.

  • ATTACH_REASON_USER indique que l'utilisateur a demandé explicitement le De à attacher à un programme (ou au processus qui contient un programme).

  • ATTACH_REASON_AUTO indique le De est attaché à un programme particulier car il débogue déjà d'autres programmes dans un processus particulier. Il est également appelé auto-attachement.

Lorsque cette méthode est appelée, le De doit envoyer ces événements dans l'ordre :

  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 la jointure est ATTACH_REASON_LAUNCH, le De doit envoyer l'événement d' IDebugEntryPointEvent2 .

Une fois le De obtient l'objet d' IDebugProgramNode2 correspondant au programme en cours de débogage, il peut être interrogé pour toute interface privée.

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

Voir aussi

Référence

IDebugEngine2

IDebugProgramNode2

IDebugProgram2

IDebugEventCallback2

ATTACH_REASON

IDebugEngineCreateEvent2

IDebugProgramCreateEvent2

IDebugLoadCompleteEvent2

IDebugEntryPointEvent2