Partager via


Méthode IDebugClient ::AttachProcess (dbgeng.h)

La méthode AttachProcess connecte le moteur de débogueur à un processus en mode utilisateur.

Syntaxe

HRESULT AttachProcess(
  [in] ULONG64 Server,
  [in] ULONG   ProcessId,
  [in] ULONG   AttachFlags
);

Paramètres

[in] Server

Spécifie le serveur de processus à utiliser pour l’attacher au processus. Si le serveur est égal à zéro, le moteur se connecte à un processus local sans utiliser de serveur de processus.

[in] ProcessId

Spécifie l’ID de processus du processus cible auquel le débogueur doit attacher.

[in] AttachFlags

Spécifie les indicateurs qui contrôlent la façon dont le débogueur s’attache au processus cible. Pour plus d’informations sur ces indicateurs, consultez Remarques.

Valeur retournée

Cette méthode peut également retourner des valeurs d’erreur. Pour plus d’informations, consultez Valeurs de retour .

Code de retour Description
S_OK
La méthode a réussi.

Remarques

Cette méthode est disponible uniquement pour le débogage en mode utilisateur actif.

Note Le moteur ne s’attache pas complètement au processus tant que la méthode WaitForEvent n’a pas été appelée. Ce n’est qu’une fois que le processus a généré un événement (par exemple, l’événement create-process) qu’il devient disponible dans la session du débogueur.
 
Pour plus d’informations sur la création et l’attachement à des cibles en mode utilisateur en direct, consultez Cibles de User-Mode en direct.

Les indicateurs de bits DEBUG_ATTACH_XXX contrôlent la façon dont le moteur du débogueur s’attache à un processus en mode utilisateur. Pour connaître les options DEBUG_ATTACH_XXX utilisées lors de l’attachement à une cible de noyau, consultez AttachKernel.

Le tableau suivant décrit les valeurs d’indicateur possibles.

Constant Description
DEBUG_ATTACH_NONINVASIVE Attacher à la cible de manière non invasive. Pour plus d’informations sur le débogage non invasif, consultez Débogage non invasif (mode utilisateur).

Si cet indicateur est défini, les indicateurs DEBUG_ATTACH_EXISTING, DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK et DEBUG_ATTACH_INVASIVE_RESUME_PROCESS ne doivent pas être définis.

DEBUG_ATTACH_EXISTING Attachez à nouveau une application à laquelle un débogueur a déjà attaché (et peut-être abandonné). Pour plus d’informations sur la ré-attachement à des cibles, consultez Ré-attachement à l’application cible.

Si cet indicateur est défini, les autres indicateurs DEBUG_ATTACH_XXX ne doivent pas être définis.

DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND Ne suspendez pas les threads de la cible lors de l’attachement de manière non invasive.

Si cet indicateur est défini, l’indicateur DEBUG_ATTACH_NONINVASIVE doit également être défini.

DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK (Windows XP et versions ultérieures) Ne demandez pas d’introduction initiale lors de l’attachement à la cible.

Si cet indicateur est défini, les indicateurs DEBUG_ATTACH_NONINVASIVE et DEBUG_ATTACH_EXISTING ne doivent pas être définis.

DEBUG_ATTACH_INVASIVE_RESUME_PROCESS Si cet indicateur est défini, les indicateurs DEBUG_ATTACH_NONINVASIVE et DEBUG_ATTACH_EXISTING ne doivent pas être définis.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête dbgeng.h (inclure Dbgeng.h)

Voir aussi

.attach (Attacher au processus)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

moteur de débogueur