Syntaxe
BOOL DebugActiveProcess(
DWORD dwProcessId
);
|
Paramètres
Nom |
Description |
dwProcessId |
Ce paramètre permet d'indiquer l'identificateur de processus devant être débogué. |
Retour
Valeur |
Description |
0 |
Cette valeur permet d'indiquer que la fonction a échoué. Pour obtenir des informations d'erreur étendues, appelez la fonction GetLastError. |
0 != |
Ces valeurs permettent d'indiquer que l'opération a réussi |
Description
Cette fonction permet d'allouer une débogueur à attaché avec un processus actif.
Remarques
- Pour arrêter le débogage du processus, vous devez quitter le processus ou appeler la fonction DebugActiveProcessStop. La sortie du débogueur entraîne également la fermeture du processus, sauf si vous utilisez la fonction DebugSetProcessKillOnExit.
- Le débogueur doit avoir un accès approprié au processus cible et doit pouvoir ouvrir le processus pour PROCESS_ALL_ACCESS. La fonction DebugActiveProcess peut échouer si le processus cible est créé avec un descripteur de sécurité accordant au débogueur un accès inférieur à l'accès complet. Si le privilège SE_DEBUG_NAME est accordé et activé au processus de débogage, il peut déboguer n'importe quel processus.
- Une fois que le système a vérifié l'identificateur de processus et déterminé qu'une pièce jointe de débogage valide est en cours d'établissement, la fonction retourne TRUE. Ensuite, le débogueur doit attendre les événements de débogage à l'aide de la fonction WaitForDebugEvent. Le système suspend tous les processus léger du processus et envoie les événements du débogueur représentant l'état actuel du processus.
- Le système envoie au débogueur un seul événement de débogage CREATE_PROCESS_DEBUG_EVENT représentant le processus spécifié par le paramètre dwProcessId. Le membre lpStartAddress de la structure CREATE_PROCESS_DEBUG_INFO est NULL.
- Pour chaque processus léger faisant actuellement partie du processus, le système envoie un événement de débogage CREATE_THREAD_DEBUG_EVENT. Le membre lpStartAddress de la structure CREATE_THREAD_DEBUG_INFO est NULL.
- Pour chaque bibliothèque de liens dynamiques (DLL) actuellement chargée dans l'espace d'adressage du processus cible, le système envoie un événement de débogage LOAD_DLL_DEBUG_EVENT. Le système fait en sorte que le premier processus léger du processus exécute une instruction de point d'arrêt après sa reprise. Si vous continuez ce fil, il reviendra à faire la même chose qu'avant l'attachement du débogueur.
- Une fois que tout cela est fait, le système reprend tous les processus léger du processus. Lorsque le premier processus léger du processus reprend, il exécute une instruction de point d'arrêt entraînant l'envoi d'un événement de débogage EXCEPTION_DEBUG_EVENT au débogueur. Tous les événements de débogage futurs sont envoyés au débogueur à l'aide du mécanisme et des règles normales.
Voir également
Articles - Les géants de l'informatique - Microsoft
Dernière mise à jour : Dimanche, le 6 décembre 2015