Compartir a través de


Función WaitForDebugEvent (debugapi.h)

Espera a que se produzca un evento de depuración en un proceso que se está depurando.

Importante En el pasado, el sistema operativo no generaba cadenas Unicode a través de OutputDebugStringW y, en su lugar, solo generaba cadenas ASCII. Para forzar a OutputDebugStringW a generar correctamente cadenas Unicode, los depuradores deben llamar a WaitForDebugEventEx para participar en el nuevo comportamiento. Al llamar a WaitForDebugEventEx, el sistema operativo sabrá que el depurador admite Unicode y está optando específicamente por recibir cadenas Unicode.
 

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 .

Advertencia No poner en cola una llamada de procedimiento asincrónico (APC) a un subproceso que llama a WaitForDebugEvent.
 

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

Vea también

ContinueDebugEvent

DEBUG_EVENT

DebugActiveProcess

DebugBreak

Eventos de depuración

Funciones de depuración

OutputDebugString