Condividi tramite


Funzione WaitForDebugEventEx (debugapi.h)

Attende che si verifichi un evento di debug in un processo sottoposto a debug.

Importante In passato, il sistema operativo non ha restituito stringhe Unicode tramite OutputDebugStringW e invece solo le stringhe ASCII di output. Per forzare OutputDebugStringW a restituire correttamente stringhe Unicode, i debugger devono chiamare WaitForDebugEventEx per acconsentire esplicitamente al nuovo comportamento. Quando si chiama WaitForDebugEventEx, il sistema operativo conoscerà che il debugger supporta Unicode ed è in particolare optando per la ricezione di stringhe Unicode.
 

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 .

Avviso Non accodare una chiamata di routine asincrona a un thread che chiama WaitForDebugEventEx.
 

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

Vedere anche

ContinueDebugEvent

DEBUG_EVENT

DebugActiveProcess

Debugbreak

Eventi di debug

Funzioni di debug

Outputdebugstring