Método de ICorDebugUnmanagedCallback::DebugEvent
Notifica o depurador que um evento nativo foi acionado.
HRESULT DebugEvent (
[in] LPDEBUG_EVENT pDebugEvent,
[in] BOOL fOutOfBand
);
Parâmetros
pDebugEvent
[in] Um ponteiro para o evento nativo.fOutOfBand
[in] true, que ocorre 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 thread que está sendo depurado é um thread do Win32, não use nenhum membro do Win32 de interface de depuração. Você pode chamar ICorDebugController::Continue somente em um thread do Win32 e somente quando continuar após um evento de out-of-band.
O DebugEvent retorno de chamada não segue as regras padrão para retornos de chamada. Quando você chamar DebugEvent, o processo será no raw, debug SO interrompido estado. O processo não será sincronizado. Ele irá inserir automaticamente o estado sincronizado quando necessário para atender a solicitações de informações sobre o código gerenciado, o que pode resultar em outros aninhado DebugEvent retornos de chamada.
Chame ICorDebugProcess::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 a solicitação para continuar e limpa automaticamente os pontos de interrupção de out-of-band e exceções de etapa única. Out-of-band eventos podem vir a qualquer momento, mesmo quando o aplicativo está sendo depurado aparece parado e quando um evento de in-band pendente já existe.
No.NET Framework versão 2.0, o depurador deve continuar imediatamente após um evento de ponto de interrupção de out-of-band. O depurador deve estar usando o ICorDebugProcess2::SetUnmanagedBreakpoint e ICorDebugProcess2::ClearUnmanagedBreakpoint métodos para adicionar e remover pontos de interrupção. Esses métodos ignorará quaisquer pontos de interrupção de out-of-band automaticamente. Assim, os pontos de interrupção de out-of-band apenas expedidos devem ser brutos pontos de interrupção que já estão no fluxo de instrução, como, por exemplo, uma chamada para o Win32 DebugBreak função. Não tente usar ICorDebugProcess::ClearCurrentException, ICorDebugProcess::GetThreadContext, ICorDebugProcess::SetThreadContext, ou qualquer outro membro da API de depuração.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0