Función WaitForDebugEvent (debugapi.h)
Espera a que se produzca un evento de depuración en un proceso que se está depurando.
Sintaxis
BOOL WaitForDebugEvent(
[out] LPDEBUG_EVENT lpDebugEvent,
[in] DWORD dwMilliseconds
);
Parámetros
[out] lpDebugEvent
Puntero a una estructura de DEBUG_EVENT que recibe información sobre el evento de depuración.
[in] dwMilliseconds
Número de milisegundos que se van a esperar a un evento de depuración. Si este parámetro es cero, la función prueba un evento de depuración y devuelve inmediatamente. Si el parámetro es INFINITE, la función no devuelve hasta que se ha producido un evento de depuración.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
Solo el subproceso que creó el proceso que se está depurando puede llamar a WaitForDebugEvent.
Cuando se produce un CREATE_PROCESS_DEBUG_EVENT, la aplicación del depurador recibe un identificador para el archivo de imagen del proceso que se está depurando, un identificador para el proceso que se está depurando y un identificador para el subproceso inicial del proceso que se está depurando en la estructura de DEBUG_EVENT . Los miembros en los que se devuelven estos identificadores son u.CreateProcessInfo.hFile (archivo de imagen), u.CreateProcessInfo.hProcess (proceso) y u.CreateProcessInfo.hThread (subproceso inicial). Si el sistema notificó previamente un evento de depuración EXIT_PROCESS_DEBUG_EVENT, el sistema cierra los identificadores del proceso y el subproceso cuando el depurador llama a la función ContinueDebugEvent . El depurador debe cerrar el identificador del archivo de imagen mediante una llamada a la función CloseHandle .
Del mismo modo, cuando se produce un CREATE_THREAD_DEBUG_EVENT, la aplicación del depurador recibe un identificador para el subproceso cuya creación provocó el evento de depuración en el miembro u.CreateThread.hThread de la estructura DEBUG_EVENT . Si el sistema notificó previamente un evento de depuración EXIT_THREAD_DEBUG_EVENT, el sistema cierra los identificadores en el subproceso cuando el depurador llama a la función ContinueDebugEvent .
Cuando se produce un LOAD_DLL_DEBUG_EVENT, la aplicación del depurador recibe un identificador para el archivo DLL cargado en el miembro u.LoadDll.hFile de la estructura DEBUG_EVENT . La aplicación del depurador debe cerrar este identificador mediante una llamada a la función CloseHandle .
Ejemplos
Para obtener un ejemplo, consulte Escritura del bucle principal del depurador.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | debugapi.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |