Compartilhar via


Interface ICorDebugManagedCallback

Fornece métodos para retornos de chamada do processo de depurador.

interface ICorDebugManagedCallback : IUnknown {
    HRESULT _stdcall Break(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* thread);
    HRESULT _stdcall Breakpoint(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugBreakpoint* pBreakpoint);
    HRESULT _stdcall BreakpointSetError(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugBreakpoint* pBreakpoint, 
                    [in] unsigned long dwError);
    HRESULT _stdcall ControlCTrap([in] ICorDebugProcess* pProcess);
    HRESULT _stdcall CreateAppDomain(
                    [in] ICorDebugProcess* pProcess, 
                    [in] ICorDebugAppDomain* pAppDomain);
    HRESULT _stdcall CreateProcess([in] ICorDebugProcess* pProcess);
    HRESULT _stdcall CreateThread(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* thread);
    HRESULT _stdcall DebuggerError(
                    [in] ICorDebugProcess* pProcess, 
                    [in] HRESULT errorHR, 
                    [in] unsigned long errorCode);
    HRESULT _stdcall EditAndContinueRemap(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugFunction* pFunction, 
                    [in] long fAccurate);
    HRESULT _stdcall EvalComplete(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugEval* pEval);
    HRESULT _stdcall EvalException(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugEval* pEval);
    HRESULT _stdcall Exception(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] long unhandled);
    HRESULT _stdcall ExitAppDomain(
                    [in] ICorDebugProcess* pProcess, 
                    [in] ICorDebugAppDomain* pAppDomain);
    HRESULT _stdcall ExitProcess([in] ICorDebugProcess* pProcess);
    HRESULT _stdcall ExitThread(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* thread);
    HRESULT _stdcall LoadAssembly(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugAssembly* pAssembly);
    HRESULT _stdcall LoadClass(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugClass* c);
    HRESULT _stdcall LoadModule(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugModule* pModule);
    HRESULT _stdcall LogMessage(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] long lLevel, 
                    [in] unsigned short* pLogSwitchName, 
                    [in] unsigned short* pMessage);
    HRESULT _stdcall LogSwitch(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] long lLevel, 
                    [in] unsigned long ulReason, 
                    [in] unsigned short* pLogSwitchName, 
                    [in] unsigned short* pParentName);
    HRESULT _stdcall NameChange(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread);
    HRESULT _stdcall StepComplete(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugStepper* pStepper, 
                    [in] CorDebugStepReason reason);
    HRESULT _stdcall UnloadAssembly(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugAssembly* pAssembly);
    HRESULT _stdcall UnloadClass(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugClass* c);
    HRESULT _stdcall UnloadModule(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugModule* pModule);
    HRESULT _stdcall UpdateModuleSymbols(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugModule* pModule, 
                    [in] IStream* pSymbolStream);
};

Métodos

Método

Descrição

Método ICorDebugManagedCallback::Break

Notifica o depurador quando um Break instrução no fluxo de código é executada.

Método ICorDebugManagedCallback::ponto de interrupção

Notifica o depurador quando um ponto de interrupção é encontrado.

Método ICorDebugManagedCallback::BreakpointSetError

Notifica o depurador que o common linguagem tempo de execução (CLR) não pôde BIND um ponto de interrupção foi definido antes de uma função era just-in-time (JIT) compilado com precisão.

Método ICorDebugManagedCallback::ControlCTrap

Notifica o depurador que um CTRL+C é interceptado no processo que está sendo depurado.

Método ICorDebugManagedCallback::CreateAppDomain

Notifica o depurador de um domínio do aplicativo foi criado.

Método ICorDebugManagedCallback::CreateProcess

Notifica o depurador quando um processo foi anexado ou iniciado pela primeira vez.

Método ICorDebugManagedCallback::CreateThread

Notifica o depurador que um thread iniciou a execução do código gerenciado.

Método ICorDebugManagedCallback::DebuggerError

Notifica o depurador que ocorreu um erro ao tentar manipular um evento do CLR.

Método ICorDebugManagedCallback::EditAndContinueRemap

preterido. Notifica o depurador que um evento de remapeamento foi enviado ao IDE.

Método ICorDebugManagedCallback::EvalComplete

Notifica o depurador uma avaliação foi concluída.

Método ICorDebugManagedCallback::EvalException

Notifica o depurador que uma avaliação foi finalizada com uma exceção sem tratamento.

Método ICorDebugManagedCallback::exceção

Notifica o depurador que uma exceção foi apresentada no código gerenciado.

Método ICorDebugManagedCallback::ExitAppDomain

Notifica o depurador que um domínio do aplicativo foi encerrado.

Método ICorDebugManagedCallback::ExitProcess

Notifica o depurador que um processo foi encerrado.

Método ICorDebugManagedCallback::ExitThread

Notifica o depurador que um segmento que estava executando código gerenciado foi encerrado.

Método ICorDebugManagedCallback::LoadAssembly

Notifica o depurador que um módulo (assembly) CLR foi carregado com êxito.

Método ICorDebugManagedCallback::LoadClass

Notifica o depurador se uma classe foi carregada.

Método ICorDebugManagedCallback::LoadModule

Notifica o depurador se um módulo CLR foi carregado com êxito.

Método ICorDebugManagedCallback::LogMessage

Notifica o depurador gerenciado de um CLR thread chamou um método no EventLog classe para registrar um evento.

Método ICorDebugManagedCallback::LogSwitch

Notifica o depurador que um segmento CLR gerenciado chamou um método no Switch classe para criar, modificar ou excluir um comutador/rastreamento de depuração.

Método ICorDebugManagedCallback::NameChange

Notifica o depurador que o nome de um domínio do aplicativo ou thread foi alterado.

Método ICorDebugManagedCallback::StepComplete

Notifica o depurador que concluiu uma etapa.

Método ICorDebugManagedCallback::UnloadAssembly

Notifica o depurador de um módulo (assembly) CLR foi descarregado.

Método ICorDebugManagedCallback::UnloadClass

Notifica o depurador que uma classe está sendo descarregada.

Método ICorDebugManagedCallback::UnloadModule

Notifica o depurador de um módulo CLR (DLL) foi descarregado.

Método ICorDebugManagedCallback::UpdateModuleSymbols

Notifica o depurador que os símbolos para um módulo CLR foram alterados.

Comentários

Todos os retornos de chamada são serializados, chamados no mesmo thread e chamados com o processo no estado sincronizado.

Cada implementação de retorno de telefonar deve chamar ICorDebugController::Continue para continuar a execução. If ICorDebugController::Continue não é chamado antes que o retorno de chamada retorna, o processo permanecerá parado e nenhum retorno de chamada de evento mais ocorrerá até ICorDebugController::Continue é chamado.

Um depurador deve implementar ICorDebugManagedCallback2 se ele estiver depurando aplicativos .NET estrutura versão 2.0. Uma instância de ICorDebugManagedCallback ou ICorDebugManagedCallback2 é passado sistema autônomo o objeto de retorno de chamada para ICorDebug::SetManagedHandler.

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

Consulte também

Referência

Interface ICorDebug

Interface ICorDebugManagedCallback2

Outros recursos

Interfaces de depuração