Compartilhar via


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

Consulte também

Referência

Interface de ICorDebugUnmanagedCallback