.NET debugging (unmanaged API reference)
The articles in this section describe the unmanaged APIs that the common language runtime (CLR) provides to support debugging .NET applications that are running on Windows, Linux, or macOS operating systems.
These articles describe APIs that were introduced in .NET Core 2.0 and later versions. For .NET Framework-era unmanaged APIs, most of which can also be used to debug .NET (Core) apps, see .NET Framework debugging.
Functions
CloseCLREnumeration function
Closes any valid CLR continue-startup events located in an array of handles returned by the EnumerateCLRs function, and frees the memory for the handle and string path arrays.
CloseResumeHandle function
Closes the handle returned by the CreateProcessForLaunch function.
CLRCreateInstance function
Provides the ICLRDebugging interface.
CreateDebuggingInterfaceFromVersion function
Accepts a CLR version string returned from the CreateVersionStringFromModule function function, and returns a corresponding debugger interface.
CreateDebuggingInterfaceFromVersionEx function
Accepts a CLR version string returned from the CreateVersionStringFromModule function function, and returns a corresponding debugger interface.
CreateDebuggingInterfaceFromVersion2 function
Accepts a CLR version string returned from the CreateVersionStringFromModule functionfunction, and returns a corresponding debugger interface.
CreateDebuggingInterfaceFromVersion3 function
Accepts a CLR version string returned from the CreateVersionStringFromModule function function, and returns a corresponding debugger interface.
CreateProcessForLaunch function
A subset of the Windows CreateProcess that can be supported cross-platform.
CreateVersionStringFromModule function
Creates a version string from a CLR path in a target process.
EnumerateCLRs function
Provides a mechanism for enumerating the CLRs in a process.
GetStartupNotificationEvent function
Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process.
RegisterForRuntimeStartup function
Executes the callback when the .NET runtime starts in the specified process.
RegisterForRuntimeStartupEx function
Executes the callback when the .NET runtime starts in the specified process.
RegisterForRuntimeStartup3 function
Executes the callback when the .NET runtime starts in the specified process.
ResumeProcess function
Resumes the process using the resume handle returned by the CreateProcessForLaunch function.
UnregisterForRuntimeStartup function
Stops/cancels runtime startup notification.
Function pointers
PSTARTUP_CALLBACK function pointer
Points to a function that's called when the .NET runtime has started for the RegisterForRuntimeStartup API.
Enumerations
LIBRARY_PROVIDER_INDEX_TYPE enumeration
The type of index information passed to the library provider is either the identity of the requested module or of the runtime (coreclr) module.
Interfaces
ICLRDebuggingLibraryProvider2 interface
Includes the ProvideLibrary2 method, which allows the debugger to provide a path to a version-specific debugging library.
ICLRDebuggingLibraryProvider3 interface
Includes callback methods that allow common language runtime version-specific debugging libraries to be located and loaded on demand for .NET regular and single-file applications.