Funzione WaitForDebugEventEx (debugapi.h)
Attende che si verifichi un evento di debug in un processo sottoposto a debug.
Sintassi
BOOL WaitForDebugEventEx(
[out] LPDEBUG_EVENT lpDebugEvent,
[in] DWORD dwMilliseconds
);
Parametri
[out] lpDebugEvent
Puntatore a una struttura DEBUG_EVENT che riceve informazioni sull'evento di debug.
[in] dwMilliseconds
Numero di millisecondi da attendere per un evento di debug. Se questo parametro è zero, la funzione testa un evento di debug e restituisce immediatamente. Se il parametro è INFINITE, la funzione non restituisce finché non si è verificato un evento di debug.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Solo il thread che ha creato il processo di debug può chiamare WaitForDebugEventEx.
Quando si verifica un CREATE_PROCESS_DEBUG_EVENT, l'applicazione debugger riceve un handle per il file di immagine del processo sottoposto a debug, un handle per il processo sottoposto a debug e un handle per il thread iniziale del processo sottoposto a debug nella struttura DEBUG_EVENT . I membri che vengono restituiti in sono u.CreateProcessInfo.hFile (file immagine), u.CreateProcessInfo.hProcess (processo) e u.CreateProcessInfo.hThread (thread iniziale). Se il sistema ha segnalato in precedenza un evento di debug EXIT_PROCESS_DEBUG_EVENT, il sistema chiude gli handle al processo e al thread quando il debugger chiama la funzione ContinueDebugEvent . Il debugger deve chiudere l'handle al file di immagine chiamando la funzione CloseHandle .
Analogamente, quando si verifica un CREATE_THREAD_DEBUG_EVENT, l'applicazione debugger riceve un handle al thread la cui creazione ha causato l'evento di debug nel membro u.CreateThread.hThread della struttura DEBUG_EVENT . Se il sistema ha segnalato in precedenza un evento di debug EXIT_THREAD_DEBUG_EVENT, il sistema chiude gli handle al thread quando il debugger chiama la funzione ContinueDebugEvent .
Quando si verifica un LOAD_DLL_DEBUG_EVENT, l'applicazione debugger riceve un handle per la DLL caricata nel membro u.LoadDll.hFile della struttura DEBUG_EVENT . Questo handle deve essere chiuso dall'applicazione debugger chiamando la funzione CloseHandle .
Esempio
Per un esempio, vedere Scrittura del ciclo principale del debugger.
Requisiti
Client minimo supportato | Windows 10 [solo app desktop] |
Server minimo supportato | Windows Server 2016 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | debugapi.h (includere Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |