Compartir a través de


ICorDebugManagedCallback

Actualización: noviembre 2007

Proporciona métodos que permiten procesar las devoluciones de llamada del 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

Descripción

ICorDebugManagedCallback::Break (Método)

Notifica al depurador cuándo se ejecuta una instrucción de Break en la secuencia de código.

ICorDebugManagedCallback::Breakpoint (Método)

Notifica al depurador cuándo se encuentra un punto de interrupción.

ICorDebugManagedCallback::BreakpointSetError (Método)

Notifica al depurador que Common Language Runtime (CLR) no pudo enlazar con precisión un punto de interrupción que se estableció antes de que una función se compilara Just-In-Time (JIT).

ICorDebugManagedCallback::ControlCTrap (Método)

Notifica al depurador que se ha interceptado CTRL+C en el proceso que se está depurando.

ICorDebugManagedCallback::CreateAppDomain (Método)

Notifica al depurador que se ha creado un dominio de aplicación.

ICorDebugManagedCallback::CreateProcess (Método)

Notifica al depurador cuándo se ha asociado o se inicia un proceso por primera vez.

ICorDebugManagedCallback::CreateThread (Método)

Notifica al depurador que un subproceso ha comenzado a ejecutar código administrado.

ICorDebugManagedCallback::DebuggerError (Método)

Notifica al depurador que se ha producido un error al intentar controlar un evento de CLR.

ICorDebugManagedCallback::EditAndContinueRemap (Método)

En desuso. Notifica al depurador que se ha enviado un evento de reasignación al IDE.

ICorDebugManagedCallback::EvalComplete (Método)

Notifica al depurador que se ha completado una evaluación.

ICorDebugManagedCallback::EvalException (Método)

Notifica al depurador que una evaluación ha finalizado con una excepción no controlada.

ICorDebugManagedCallback::Exception (Método)

Notifica al depurador que se ha producido una excepción desde el código administrado.

ICorDebugManagedCallback::ExitAppDomain (Método)

Notifica al depurador que un dominio de aplicación ha salido.

ICorDebugManagedCallback::ExitProcess (Método)

Notifica al depurador que un proceso ha salido.

ICorDebugManagedCallback::ExitThread (Método)

Notifica al depurador que un subproceso que estaba ejecutando código administrado ha salido.

ICorDebugManagedCallback::LoadAssembly (Método)

Notifica al depurador que se ha cargado correctamente un ensamblado de CLR.

ICorDebugManagedCallback::LoadClass (Método)

Notifica al depurador que se ha cargado una clase.

ICorDebugManagedCallback::LoadModule (Método)

Notifica al depurador que se ha cargado correctamente un módulo de CLR.

ICorDebugManagedCallback::LogMessage (Método)

Notifica al depurador que un subproceso administrado de CLR ha llamado a un método de la clase EventLog para registrar un evento.

ICorDebugManagedCallback::LogSwitch (Método)

Notifica al depurador que un subproceso administrado de CLR ha llamado a un método de la clase Switch para crear, modificar o eliminar un modificador de depuración o traza.

ICorDebugManagedCallback::NameChange (Método)

Notifica al depurador que el nombre de un dominio de aplicación o de un subproceso ha cambiado.

ICorDebugManagedCallback::StepComplete (Método)

Notifica al depurador que se ha completado un paso.

ICorDebugManagedCallback::UnloadAssembly (Método)

Notifica al depurador que se ha descargado un ensamblado de CLR.

ICorDebugManagedCallback::UnloadClass (Método)

Notifica al depurador que se va a descargar una clase.

ICorDebugManagedCallback::UnloadModule (Método)

Notifica al depurador que se ha descargado un módulo de CLR (DLL).

ICorDebugManagedCallback::UpdateModuleSymbols (Método)

Notifica al depurador que los símbolos de un módulo de CLR han cambiado.

Comentarios

Todas las devoluciones de llamada se serializan, se invocan en el mismo subproceso y se invocan con el proceso en estado sincronizado.

Cada implementación de devolución de llamada debe llamar a ICorDebugController::Continue para reanudar la ejecución. Si no se llama a ICorDebugController::Continue antes de que regrese la devolución de llamada, el proceso seguirá detenido y no se producirán más devoluciones de llamada de evento hasta que se llame a ICorDebugController::Continue.

Un depurador debe implementar ICorDebugManagedCallback2 si está depurando aplicaciones de .NET Framework 2.0. Una instancia de ICorDebugManagedCallback o ICorDebugManagedCallback2 se pasa como objeto de devolución de llamada a ICorDebug::SetManagedHandler.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: CorDebug.idl

Biblioteca: CorGuids.lib

Versiones de .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Vea también

Referencia

ICorDebug

ICorDebugManagedCallback2

Otros recursos

Interfaces para depuración