Функция WaitForDebugEventEx (debugapi.h)
Ожидает возникновения события отладки в отлаживаемом процессе.
Синтаксис
BOOL WaitForDebugEventEx(
[out] LPDEBUG_EVENT lpDebugEvent,
[in] DWORD dwMilliseconds
);
Параметры
[out] lpDebugEvent
Указатель на структуру DEBUG_EVENT , которая получает сведения о событии отладки.
[in] dwMilliseconds
Время ожидания события отладки в миллисекундах. Если этот параметр равен нулю, функция проверяет наличие события отладки и немедленно возвращает значение . Если параметр имеет значение INFINITE, функция не возвращается, пока не произошло событие отладки.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Только поток, создавший отлаживаемый процесс, может вызывать WaitForDebugEventEx.
При CREATE_PROCESS_DEBUG_EVENT приложение отладчика получает дескриптор файла изображения отлаживаемого процесса, дескриптор отлаживаемого процесса и дескриптор начального потока отлаживаемого процесса в структуре DEBUG_EVENT . Элементы, в которых возвращаются эти дескрипторы: u.CreateProcessInfo.hFile (файл изображения), u.CreateProcessInfo.hProcess (process) и u.CreateProcessInfo.hThread (начальный поток). Если система ранее сообщала о событии отладки EXIT_PROCESS_DEBUG_EVENT, система закрывает дескриптор для процесса и потока, когда отладчик вызывает функцию ContinueDebugEvent . Отладчик должен закрыть дескриптор для файла изображения, вызвав функцию CloseHandle .
Аналогичным образом, при CREATE_THREAD_DEBUG_EVENT приложение отладчика получает дескриптор потока, создание которого вызвало событие отладки в элементе u.CreateThread.hThreadструктуры DEBUG_EVENT . Если система ранее сообщала о событии отладки EXIT_THREAD_DEBUG_EVENT, система закрывает дескриптор потока, когда отладчик вызывает функцию ContinueDebugEvent .
При LOAD_DLL_DEBUG_EVENT приложение отладчика получает дескриптор загруженной библиотеки DLL в элементе u.LoadDll.hFile структуры DEBUG_EVENT . Этот дескриптор должен быть закрыт приложением отладчика путем вызова функции CloseHandle .
Примеры
Пример см. в разделе Написание главного цикла отладчика.
Требования
Минимальная версия клиента | Windows 10 [только классические приложения] |
Минимальная версия сервера | Windows Server 2016 [только классические приложения] |
Целевая платформа | Windows |
Header | debugapi.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |