ICorDebug Interface

Provides methods that allow developers to debug applications in the common language runtime (CLR) environment.


Mixed-mode (managed and native code) debugging is not supported on non-x86 platforms (such as IA64 and AMD64).


Method Description
CanLaunchOrAttach Method Determines whether launching a new process or attaching to the given process is possible within the context of the current machine and runtime configuration.
CreateProcess Method Launches a process and its primary thread under the control of the debugger.
DebugActiveProcess Method Attaches the debugger to an existing process.
EnumerateProcesses Method Gets an enumerator for the processes that are being debugged.
GetProcess Method Returns the "ICorDebugProcess" object with the given process ID.
Initialize Method Initializes the ICorDebug object.
SetManagedHandler Method Specifies the event handler object for managed events.
SetUnmanagedHandler Method Specifies the event handler object for unmanaged events.
Terminate Method Terminates the ICorDebug object.


ICorDebug represents an event processing loop for a debugger process. The debugger must wait for the ICorDebugManagedCallback::ExitProcess callback from all processes being debugged before releasing this interface.

The ICorDebug object is the initial object to control all further managed debugging. In the .NET Framework versions 1.0 and 1.1, this object was a CoClass object created from COM. In .NET Framework version 2.0, this object is no longer a CoClass object. It must be created by the CreateDebuggingInterfaceFromVersion function, which is more version-aware. This new creation function enables clients to get a specific implementation of ICorDebug, which also emulates a specific version of the debugging API.


This interface does not support being called remotely, either cross-machine or cross-process.


Platforms: See System Requirements.

Header: CorDebug.idl, CorDebug.h

Library: CorGuids.lib

.NET Framework Versions: Available since 1.0

See also