Fonction WaitForDebugEvent (debugapi.h)

Attend qu’un événement de débogage se produise dans un processus en cours de débogage.

Important Dans le passé, le système d’exploitation n’a pas généré de chaînes Unicode via OutputDebugStringW , mais uniquement des chaînes ASCII. Pour forcer OutputDebugStringW à générer correctement des chaînes Unicode, les débogueurs doivent appeler WaitForDebugEventEx pour accepter le nouveau comportement. Lors de l’appel de WaitForDebugEventEx, le système d’exploitation sait que le débogueur prend en charge Unicode et choisit spécifiquement de recevoir des chaînes Unicode.
 

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 .

Avertissement Ne placez pas en file d’attente un appel de procédure asynchrone (APC) vers un thread qui appelle WaitForDebugEvent.
 

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

Voir aussi

ContinueDebugEvent

DEBUG_EVENT

DebugActiveProcess

DebugBreak

Événements de débogage

Fonctions de débogage

OutputDebugString