Método ICorDebugUnmanagedCallback::DebugEvent
Notifica o depurador que um evento nativo tiver sido disparado.
HRESULT DebugEvent (
[in] LPDEBUG_EVENT pDebugEvent,
[in] BOOL fOutOfBand
);
Parâmetros
pDebugEvent
[in] Um ponteiro para o evento nativo.fOutOfBand
[in] true, se a interação com o estado do processo gerenciado é impossível após um evento não gerenciado, até que as chamadas do depurador ICorDebugController::Continue; caso contrário, false.
Comentários
Se o segmento que está sendo depurado é um thread do Win32, não use todos os membros do Win32 de interface de depuração. Você pode telefonar ICorDebugController::Continue somente em um thread do Win32 e somente quando continuar após um evento fora de banda.
The DebugEvent retorno de chamada não segue as regras padrão para retornos de chamada. Quando você chama DebugEvent, o processo será no brutos, depurar de SO parado estado. O processo não será sincronizado. Ele será automaticamente entrar no estado sincronizado quando necessário para satisfazer às solicitações para informações sobre o código gerenciado, que pode resultar em outros aninhados DebugEvent retornos de chamada.
De telefonarICorDebugProcess::ClearCurrentException sobre o processo de ignorar um evento de exceção antes de continuar o processo. Chamar esse método envia DBG_CONTINUE em vez de DBG_EXCEPTION_NOT_HANDLED na solicitação da continuação e limpa automaticamente os pontos de interrupção fora de banda e exceções de etapa única. Out-of-band eventos podem vir a qualquer momento, até mesmo quando o aplicativo que está sendo depurado aparece parado e quando um evento em banda pendente já existe.
No .NET estrutura versão 2.0, o depurador deve continuar imediatamente após um evento de ponto de interrupção fora de banda. O depurador deve estar usando o ICorDebugProcess2::SetUnmanagedBreakpoint and ICorDebugProcess2::ClearUnmanagedBreakpoint métodos para adicionar e remover pontos de interrupção. Esses métodos ignorará qualquer pontos de interrupção de out-of-banda automaticamente. Assim, sistema autônomo pontos de interrupção somente fora de banda que obtém despachados devem ser brutos pontos de interrupção que já estão no fluxo de instrução, sistema autônomo uma telefonar para o Win32 DebugBreak função. Não tente usar ICorDebugProcess::ClearCurrentException, ICorDebugProcess::GetThreadContext, ICorDebugProcess::SetThreadContextou qualquer Outros membro do API de depuração.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: CorDebug.idl
Biblioteca: CorGuids.lib
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0