ICorDebugManagedCallback Interface
Provides methods to process debugger callbacks.
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);
};
Methods
Method |
Description |
---|---|
Notifies the debugger when a Break instruction in the code stream is executed. |
|
Notifies the debugger when a breakpoint is encountered. |
|
Notifies the debugger that the common language runtime (CLR) was unable to accurately bind a breakpoint that was set before a function was just-in-time (JIT) compiled. |
|
Notifies the debugger that a CTRL+C is trapped in the process being debugged. |
|
Notifies the debugger that an application domain has been created. |
|
Notifies the debugger when a process has been attached or started for the first time. |
|
Notifies the debugger that a thread has started executing managed code. |
|
Notifies the debugger that an error has occurred while attempting to handle an event from the CLR. |
|
Deprecated. Notifies the debugger that a remap event has been sent to the IDE. |
|
Notifies the debugger that an evaluation has been completed. |
|
Notifies the debugger that an evaluation has been terminated with an unhandled exception. |
|
Notifies the debugger that an exception has been thrown from managed code. |
|
Notifies the debugger that an application domain has exited. |
|
Notifies the debugger that a process has exited. |
|
Notifies the debugger that a thread that was executing managed code has exited. |
|
Notifies the debugger that a CLR assembly has been successfully loaded. |
|
Notifies the debugger that a class has been loaded. |
|
Notifies the debugger that a CLR module has been successfully loaded. |
|
Notifies the debugger that a CLR managed thread has called a method in the EventLog class to log an event. |
|
Notifies the debugger that a CLR managed thread has called a method in the Switch class to create, modify, or delete a debugging/tracing switch. |
|
Notifies the debugger that the name of either an application domain or thread has changed. |
|
Notifies the debugger that a step has completed. |
|
Notifies the debugger that a CLR assembly has been unloaded. |
|
Notifies the debugger that a class is being unloaded. |
|
Notifies the debugger that a CLR module (DLL) has been unloaded. |
|
Notifies the debugger that the symbols for a CLR module have changed. |
Remarks
All callbacks are serialized, called in the same thread, and called with the process in the synchronized state.
Each callback implementation must call ICorDebugController::Continue to resume execution. If ICorDebugController::Continue is not called before the callback returns, the process will remain stopped and no more event callbacks will occur until ICorDebugController::Continue is called.
A debugger must implement ICorDebugManagedCallback2 if it is debugging .NET Framework version 2.0 applications. An instance of ICorDebugManagedCallback or ICorDebugManagedCallback2 is passed as the callback object to ICorDebug::SetManagedHandler.
Requirements
Platforms: Windows 2000, Windows XP, Windows Server 2003 family
Header: CorDebug.idl
Library: CorGuids.lib
.NET Framework Version: 2.0, 1.1, 1.0