Fonction WaitForDebugEvent (debugapi.h)
Attend qu’un événement de débogage se produise dans un processus en cours de débogage.
Syntaxe
BOOL WaitForDebugEvent(
[out] LPDEBUG_EVENT lpDebugEvent,
[in] DWORD dwMilliseconds
);
Paramètres
[out] lpDebugEvent
Pointeur vers une structure DEBUG_EVENT qui reçoit des informations sur l’événement de débogage.
[in] dwMilliseconds
Nombre de millisecondes à attendre pour un événement de débogage. Si ce paramètre est égal à zéro, la fonction teste un événement de débogage et retourne immédiatement. Si le paramètre est INFINITE, la fonction ne retourne pas tant qu’un événement de débogage ne s’est pas produit.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Seul le thread qui a créé le processus en cours de débogage peut appeler WaitForDebugEvent.
Lorsqu’une CREATE_PROCESS_DEBUG_EVENT se produit, l’application de débogueur reçoit un handle pour le fichier image du processus en cours de débogage, un handle pour le processus en cours de débogage et un handle pour le thread initial du processus en cours de débogage dans la structure DEBUG_EVENT . Les membres de ces handles sont retournés dans u.CreateProcessInfo.hFile (fichier image), u.CreateProcessInfo.hProcess (processus) et u.CreateProcessInfo.hThread (thread initial). Si le système a précédemment signalé un événement de débogage EXIT_PROCESS_DEBUG_EVENT, le système ferme les handles au processus et au thread lorsque le débogueur appelle la fonction ContinueDebugEvent . Le débogueur doit fermer le handle au fichier image en appelant la fonction CloseHandle .
De même, lorsqu’une CREATE_THREAD_DEBUG_EVENT se produit, l’application de débogueur reçoit un handle au thread dont la création a provoqué l’événement de débogage dans le membre u.CreateThread.hThread de la structure DEBUG_EVENT . Si le système a précédemment signalé un événement de débogage EXIT_THREAD_DEBUG_EVENT, le système ferme les handles au thread lorsque le débogueur appelle la fonction ContinueDebugEvent .
Lorsqu’une LOAD_DLL_DEBUG_EVENT se produit, l’application de débogueur reçoit un handle à la DLL chargée dans le membre u.LoadDll.hFile de la structure DEBUG_EVENT . Ce handle doit être fermé par l’application de débogueur en appelant la fonction CloseHandle .
Exemples
Pour obtenir un exemple, consultez Écriture de la boucle principale du débogueur.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | debugapi.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |