Debugging Interfaces

This section describes the unmanaged interfaces that handle the debugging of a program that is executing in the common language runtime (CLR).

In This Section

ICLRDataEnumMemoryRegions Interface
Provides a method to enumerate regions of memory that are specified by callers.

ICLRDataEnumMemoryRegionsCallback Interface
Provides a callback method for EnumMemoryRegions to report to the debugger, the result of an attempt to enumerate a specified region of memory.

ICLRDataTarget Interface
Provides methods for interaction with a target CLR process.

ICLRDataTarget2 Interface
A subclass of ICLRDataTarget that is used by the data access services layer to manipulate virtual memory regions in the target process.

ICLRDataTarget3 Interface
A subclass of ICLRDataTarget2 that provides access to exception information.

ICLRDebugging Interface
Provides methods that handle loading and unloading modules for debugging.

ICLRDebuggingLibraryProvider Interface
Includes the ProvideLibrary Method method, which gets a library provider callback interface that allows common language runtime version-specific debugging libraries to be located and loaded on demand.

ICLRMetadataLocator Interface
Interface used by the data access services layer to locate metadata of assemblies in a target process.

ICorDebug Interface
Provides methods that allow developers to debug applications in the CLR environment.

ICorDebugAppDomain Interface1
Provides methods for debugging application domains.

ICorDebugAppDomain2 Interface1
Provides methods to work with arrays, pointers, function pointers, and ByRef types. This interface is an extension of the ICorDebugAppDomain interface.

ICorDebugAppDomain3 Interface
Provides methods to work with the Windows Runtime types in an application domain. This interface is an extension of the ICorDebugAppDomain and ICorDebugAppDomain2 interfaces.

ICorDebugAppDomain4 Interface
Logically extends the ICorDebugAppDomain interface to get a managed object from a COM callable wrapper.

ICorDebugAppDomainEnum Interface1
Provides a method that returns a specified number of ICorDebugAppDomain values starting at the next location in the enumeration.

ICorDebugArrayValue Interface1
A subclass of ICorDebugHeapValue that represents a single-dimensional or multi-dimensional array.

ICorDebugAssembly Interface1
Represents an assembly.

ICorDebugAssembly2 Interface1
Represents an assembly. This interface is an extension of the ICorDebugAssembly interface.

ICorDebugAssembly3 Interface
Logically extends the ICorDebugAssembly interface to provide support for container assemblies and their contained assemblies. Available on .NET Native only.

ICorDebugAssemblyEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugAssembly arrays.

ICorDebugBlockingObjectEnum Interface
Provides an enumerator for a list of CorDebugBlockingObject structures.

ICorDebugBoxValue Interface1
A subclass of ICorDebugHeapValue that represents a boxed value class object.

ICorDebugBreakpoint Interface1
Represents a breakpoint in a function or a watch point on a value.

ICorDebugBreakpointEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugBreakpoint arrays.

ICorDebugChain Interface1
Represents a segment of a physical or logical call stack.

ICorDebugChainEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugChain arrays.

ICorDebugClass Interface1
Represents a type, which can be either basic or complex (that is, user-defined). If the type is generic, ICorDebugClass represents the uninstantiated generic type.

ICorDebugClass2 Interface1
Represents a generic class or a class with a method parameter of type Type. This interface extends ICorDebugClass.

ICorDebugCode Interface1
Represents a segment of either Microsoft intermediate language (MSIL) code or native code.

ICorDebugCode2 Interface1
Provides methods that extend the capabilities of ICorDebugCode.

ICorDebugCode3 Interface
Provides a method that extends ICorDebugCode and ICorDebugCode2 to provide information about a managed return value.

ICorDebugCode4 Interface
Provides a method that enables a debugger to enumerate the local variables and arguments in a function.

ICorDebugCodeEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugCode arrays.

ICorDebugComObjectValue Interface
Provides methods to retrieve cached interface objects.

ICorDebugContext Interface1
Represents a context object. This interface has not been implemented yet.

ICorDebugController Interface1
Represents a scope, either a Process or an AppDomain, in which code execution context can be controlled.

ICorDebugDataTarget Interface
Provides a callback interface that provides access to a particular target process.

ICorDebugDataTarget2 Interface
Logically extends the ICorDebugDataTarget interface. Available on .NET Native only.

ICorDebugDataTarget3 Interface
Logically extends the ICorDebugDataTarget interface to provide information about loaded modules. Available on .NET Native only.

ICorDebugDebugEvent Interface
Defines the base interface from which all ICorDebug debug events derive. Available on .NET Native only.

ICorDebugEditAndContinueErrorInfo Interface
Obsolete. Do not use this interface.

ICorDebugEditAndContinueSnapshot Interface1
Obsolete. Do not use this interface.

ICorDebugEnum Interface1
Serves as the abstract base interface for debugging enumerators.

ICorDebugErrorInfoEnum Interface1
Obsolete. Do not use this interface.

ICorDebugEval Interface1
Provides methods to enable the debugger to execute code within the context of the code being debugged.

ICorDebugEval2 Interface1
Extends ICorDebugEval to provide support for generic types.

ICorDebugExceptionDebugEvent Interface
Extends the ICorDebugDebugEvent interface to support exception events. Available on .NET Native only.

ICorDebugExceptionObjectCallStackEnum Interface
Provides an enumerator for call stack information that is embedded in an exception object.

ICorDebugExceptionObjectValue Interface
Extends the ICorDebugObjectValue interface to provide stack trace information from a managed exception object.

ICorDebugFrame Interface1
Represents a frame on the current stack.

ICorDebugFrameEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugFrame arrays.

ICorDebugFunction Interface1
Represents a managed function or method.

ICorDebugFunction2 Interface1
Logically extends ICorDebugFunction to provide support for Just My Code step-through debugging.

ICorDebugFunction3 Interface
Logically extends the ICorDebugFunction interface to provide access to code from a ReJIT request.

ICorDebugFunctionBreakpoint Interface1
Extends ICorDebugBreakpoint to support breakpoints within functions.

ICorDebugGCReferenceEnum Interface
Provides an enumerator for objects that will be garbage-collected.

ICorDebugGenericValue Interface1
A subclass of ICorDebugValue that applies to all values. This interface provides Get and Set methods for the value.

ICorDebugGuidToTypeEnum Interface
Provides an enumerator for an object that maps GUIDs and their corresponding ICorDebugType objects.

ICorDebugHandleValue Interface1
A subclass of ICorDebugReferenceValue that represents a reference value to which the debugger has created a handle for garbage collection.

ICorDebugHeapEnum Interface
Provides an enumerator for objects on the managed heap.

ICorDebugHeapSegmentEnum Interface
Provides an enumerator for the memory regions of the managed heap.

ICorDebugHeapValue Interface1
A subclass of ICorDebugValue that represents an object that has been collected by the CLR garbage collector.

ICorDebugHeapValue2 Interface1
An extension of ICorDebugHeapValue that provides support for runtime handles.

ICorDebugHeapValue3 Interface
Exposes the monitor lock properties of objects.

ICorDebugILCode Interface
Represents a segment of intermediate language (IL) code.

ICorDebugILCode2 Interface
Logically extends the ICorDebugILCode interface to provide methods that return the token for a function's local variable signature, and that map a profiler's instrumented intermediate language (IL) offsets to original method IL offsets.

ICorDebugILFrame Interface1
Represents a stack frame of MSIL code.

ICorDebugILFrame2 Interface1
A logical extension of ICorDebugILFrame.

ICorDebugILFrame3 Interface
Provides a method that encapsulates the return value of a function.

ICorDebugILFrame4 Interface
Provides methods that allow you to access the local variables and code in a stack frame of intermediate language (IL) code. A parameter specifies whether the debugger has access to variables and code added in profiler ReJIT instrumentation.

ICorDebugInstanceFieldSymbol Interface
Represents the debug symbol information for an instance field. Available on .NET Native only.

ICorDebugInternalFrame Interface1
Identifies frame types for the debugger.

ICorDebugInternalFrame2 Interface
Provides information about internal frames, including stack address and position in relation to ICorDebugFrame objects.

ICorDebugLoadedModule Interface
Provides information about a loaded module. Available on .NET Native only.

ICorDebugManagedCallback Interface
Provides methods to process debugger callbacks.

ICorDebugManagedCallback2 Interface
Provides methods to support debugger exception handling and managed debugging assistants (MDAs). ICorDebugManagedCallback2 is a logical extension of ICorDebugManagedCallback.

ICorDebugManagedCallback3 Interface
Provides a callback method that indicates that an enabled custom debugger notification has been raised.

ICorDebugMDA Interface
Represents a managed debugging assistant (MDA) message.

ICorDebugMemoryBuffer Interface
Represents an in-memory buffer. Available on .NET Native only.

ICorDebugMergedAssemblyRecord Interface
Provides information about a merged assembly. Available on .NET Native only.

ICorDebugMetaDataLocator Interface
Provides metadata information to the debugger.

ICorDebugModule Interface1
Represents a CLR module, which is either an executable or a dynamic-link library (DLL).

ICorDebugModule2 Interface1
Serves as a logical extension to ICorDebugModule.

ICorDebugModule3 Interface
Creates a symbol reader for a dynamic module.

ICorDebugModuleBreakpoint Interface1
Extends ICorDebugBreakpoint to provide access to specific modules.

ICorDebugModuleDebugEvent Interface
Extends the ICorDebugDebugEvent interface to support module-level events. Available on .NET Native only.

ICorDebugModuleEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugModule arrays.

ICorDebugMutableDataTarget Interface
Extends the ICorDebugDataTarget interface to support mutable data targets.

ICorDebugNativeFrame Interface1
A specialized implementation of ICorDebugFrame used for native frames.

ICorDebugNativeFrame2 Interface
Provides methods that test for child and parent frame relationships.

ICorDebugObjectEnum Interface1
Implements ICorDebugEnum methods, and enumerates arrays of objects by their relative virtual addresses (RVAs).

ICorDebugObjectValue Interface1
A subclass of ICorDebugValue that represents a value that contains an object.

ICorDebugObjectValue2 Interface1
Extends ICorDebugObjectValue to support inheritance and overrides.

ICorDebugProcess Interface1
Represents a process that is executing managed code.

ICorDebugProcess2 Interface1
A logical extension of ICorDebugProcess.

ICorDebugProcess3 Interface
Controls custom debugger notifications.

ICorDebugProcess5 Interface
Extends the ICorDebugProcess interface to support access to the managed heap, to provide information about garbage collection of managed objects, and to determine whether a debugger loads images from the application's local native image cache.

ICorDebugProcess6 Interface
Logically extends the ICorDebugProcess interface to enable features such as decoding managed debug events that are encoded in native exception debug events and virtual module splitting. Available on .NET Native only.

ICorDebugProcess7 Interface
Provides a method that configures the debugger to handle in-memory metadata updates in the target process.

ICorDebugProcess8 Interface
Logically extends the ICorDebugProcess interface to enable or disable certain types of ICorDebugManagedCallback2 exception callbacks.

ICorDebugProcessEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugProcess arrays.

ICorDebugReferenceValue Interface1
A subclass of ICorDebugValue that supports reference types.

ICorDebugRegisterSet Interface
Represents the set of registers available on the machine that is currently executing code.

ICorDebugRegisterSet2 Interface
Extends the capabilities of ICorDebugRegisterSet for hardware platforms that have more than 64 registers.

ICorDebugRemote Interface
Provides the ability to launch or attach a managed debugger to a remote target process.

ICorDebugRemoteTarget Interface
Provides methods that enable you to debug Silverlight-based applications in the CLR environment.

ICorDebugRuntimeUnwindableFrame Interface
Provides support for unmanaged methods that require the common language runtime (CLR) to unwind a frame.

ICorDebugStackWalk Interface
Provides methods for getting the managed methods, or frames, on a thread’s stack.

ICorDebugStaticFieldSymbol Interface
Represents the debug symbol information for a static field. Available on .NET Native only.

ICorDebugStepper Interface1
Represents a step in code execution that is performed by a debugger, serves as an identifier between the issuance and completion of a command, and provides a way to cancel a step.

ICorDebugStepper2 Interface1
Provides support for Just My Code (JMC) debugging.

ICorDebugStepperEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugStepper arrays.

ICorDebugStringValue Interface1
A subclass of ICorDebugHeapValue that applies to string values.

ICorDebugSymbolProvider Interface
Provides methods that can be used to retrieve debug symbol information. Available on .NET Native only.

ICorDebugSymbolProvider2 Interface
Logically extends the ICorDebugSymbolProvider interface to retrieve additional debug symbol information. Available on .NET Native only.

ICorDebugThread Interface1
Represents a thread in a process. The lifetime of an ICorDebugThread instance is the same as the lifetime of the thread it represents.

ICorDebugThread2 Interface1
Serves as a logical extension to ICorDebugThread.

ICorDebugThread3 Interface
Provides the entry point to the ICorDebugStackWalk and corresponding interfaces.

ICorDebugThread4 Interface
Provides thread blocking information.

ICorDebugThreadEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugThread arrays.

ICorDebugType Interface1
Represents a type, which can be either basic or complex (that is, user-defined). If the type is generic, ICorDebugType represents the instantiated generic type.

ICorDebugType2 Interface
Extends the ICorDebugType interface to retrieve the type identifier of a base type or complex (user-defined) type.

ICorDebugTypeEnum Interface1
Implements ICorDebugEnum methods, and enumerates ICorDebugType arrays.

ICorDebugUnmanagedCallback Interface
Provides notification of native events that are not directly related to the CLR.

"ICorDebugValue"
Represents a read or write value in the process being debugged.

"ICorDebugValue2"
Extends ICorDebugValue to provide support for ICorDebugType.

ICorDebugValue3 Interface
Extends the "ICorDebugValue" and "ICorDebugValue2" interfaces to provide support for arrays that are larger than 2 GB.

"ICorDebugValueBreakpoint"
Extends ICorDebugBreakpoint to provide access to specific values.

"ICorDebugValueEnum"
Implements ICorDebugEnum methods, and enumerates ICorDebugValue arrays.

ICorDebugVariableHome Interface
Represents a local variable or argument of a function.

ICorDebugVariableHomeEnum Interface
Provides an enumerator to the local variables and arguments in a function.

ICorDebugVariableSymbol Interface
Retrieves the debug symbol information for a variable. Available on .NET Native only.

ICorDebugVirtualUnwinder Interface
Provides methods to help in stack unwinding. Available on .NET Native only.

ICorPublish Interface
Serves as the general interface for the publishing processes.

ICorPublishAppDomain Interface
Represents and provides information about an application domain.

ICorPublishAppDomainEnum Interface
Provides methods that traverse a collection of ICorPublishAppDomain objects that currently exist within a process.

ICorPublishEnum Interface
Serves as the abstract base for publishing enumerators.

ICorPublishProcess Interface
Provides methods that access information about a process.

ICorPublishProcessEnum Interface
Provides methods that traverse a collection of ICorPublishProcess objects.

Debugging Coclasses

Debugging Global Static Functions

Debugging Enumerations

Debugging Structures