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 :
IDebugEngineCreateEvent2 (s’il n’a pas déjà été envoyé pour une instance particulière du moteur de débogage)
-
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
ourgpProgramNodes
, si nécessaire, l’emprunt d’identité doit être activé sur l’interfaceIDebugProgram2
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é.