Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |
|---|---|
Notifica al depurador cuándo se ejecuta una instrucción de Break en la secuencia de código. |
|
Notifica al depurador cuándo se encuentra un punto de interrupción. |
|
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). |
|
Notifica al depurador que se ha interceptado CTRL+C en el proceso que se está depurando. |
|
Notifica al depurador que se ha creado un dominio de aplicación. |
|
Notifica al depurador cuándo se ha asociado o se inicia un proceso por primera vez. |
|
Notifica al depurador que un subproceso ha comenzado a ejecutar código administrado. |
|
Notifica al depurador que se ha producido un error al intentar controlar un evento de CLR. |
|
En desuso. Notifica al depurador que se ha enviado un evento de reasignación al IDE. |
|
Notifica al depurador que se ha completado una evaluación. |
|
Notifica al depurador que una evaluación ha finalizado con una excepción no controlada. |
|
Notifica al depurador que se ha producido una excepción desde el código administrado. |
|
Notifica al depurador que un dominio de aplicación ha salido. |
|
Notifica al depurador que un proceso ha salido. |
|
Notifica al depurador que un subproceso que estaba ejecutando código administrado ha salido. |
|
Notifica al depurador que se ha cargado correctamente un ensamblado de CLR. |
|
Notifica al depurador que se ha cargado una clase. |
|
Notifica al depurador que se ha cargado correctamente un módulo de CLR. |
|
Notifica al depurador que un subproceso administrado de CLR ha llamado a un método de la clase EventLog para registrar un evento. |
|
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. |
|
Notifica al depurador que el nombre de un dominio de aplicación o de un subproceso ha cambiado. |
|
Notifica al depurador que se ha completado un paso. |
|
Notifica al depurador que se ha descargado un ensamblado de CLR. |
|
Notifica al depurador que se va a descargar una clase. |
|
Notifica al depurador que se ha descargado un módulo de CLR (DLL). |
|
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