Partilhar via


Função WaitForDebugEventEx (debugapi.h)

Aguarda que um evento de depuração ocorra em um processo que está sendo depurado.

importantes no passado, o sistema operacional não gerava cadeias de caracteres Unicode por meio de OutputDebugStringW e, em vez disso, apenas gerava cadeias de caracteres ASCII. Para forçar OutputDebugStringW a gerar corretamente cadeias de caracteres Unicode, os depuradores são obrigados a chamar WaitForDebugEventEx para aceitar o novo comportamento. Ao chamar WaitForDebugEventEx, o sistema operacional saberá que o depurador dá suporte ao Unicode e está optando especificamente por receber cadeias de caracteres Unicode.
 

Sintaxe

BOOL WaitForDebugEventEx(
  [out] LPDEBUG_EVENT lpDebugEvent,
  [in]  DWORD         dwMilliseconds
);

Parâmetros

[out] lpDebugEvent

Um ponteiro para uma estrutura DEBUG_EVENT que recebe informações sobre o evento de depuração.

[in] dwMilliseconds

O número de milissegundos a aguardar por um evento de depuração. Se esse parâmetro for zero, a função testará um evento de depuração e retornará imediatamente. Se o parâmetro for INFINITE, a função não retornará até que ocorra um evento de depuração.

Valor de retorno

Se a função for bem-sucedida, o valor retornado não será zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Observações

Somente o thread que criou o processo que está sendo depurado pode chamar WaitForDebugEventEx.

Quando um CREATE_PROCESS_DEBUG_EVENT ocorre, o aplicativo de depurador recebe um identificador para o arquivo de imagem do processo que está sendo depurado, um identificador para o processo que está sendo depurado e um identificador para o thread inicial do processo que está sendo depurado na estrutura de DEBUG_EVENT. Os membros em que esses identificadores são retornados são u.CreateProcessInfo.hFile (arquivo de imagem), u.CreateProcessInfo.hProcess (processo) e u.CreateProcessInfo.hThread (thread inicial). Se o sistema relatou anteriormente um evento de depuração EXIT_PROCESS_DEBUG_EVENT, o sistema fecha as alças do processo e do thread quando o depurador chama a função ContinueDebugEvent. O depurador deve fechar o identificador do arquivo de imagem chamando a função CloseHandle.

Da mesma forma, quando ocorre um CREATE_THREAD_DEBUG_EVENT, o aplicativo de depurador recebe um identificador para o thread cuja criação causou o evento de depuração no u.CreateThread.hThread membro da estrutura DEBUG_EVENT. Se o sistema relatou anteriormente um evento de depuração EXIT_THREAD_DEBUG_EVENT, o sistema fecha as alças do thread quando o depurador chama a função ContinueDebugEvent.

Quando um LOAD_DLL_DEBUG_EVENT ocorre, o aplicativo de depurador recebe um identificador para a DLL carregada no membro u.LoadDll.hFile da estrutura DEBUG_EVENT. Esse identificador deve ser fechado pelo aplicativo de depurador chamando a função CloseHandle.

Aviso Não enfileirar um de chamada de procedimento assíncrono (APC) para um thread que chama WaitForDebugEventEx.
 

Exemplos

Para obter um exemplo, consulte Gravando o loop principal do depurador.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10 [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2016 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho debugapi.h (inclua Windows.h)
biblioteca Kernel32.lib
de DLL Kernel32.dll

Consulte também

ContinueDebugEvent

DEBUG_EVENT

DebugActiveProcess

DebugBreak

de eventos de depuração de

Funções de depuração de

OutputDebugString