Profiling Interfaces

This section describes the unmanaged interfaces that enable you to profile a program that is being executed by the common language runtime (CLR).

In This Section

ICLRProfiling Interface
Provides the AttachProfiler method, which enables a profiler to attach to a running process.

ICorProfilerAssemblyReferenceProvider Interface
Enables the profiler to inform the CLR of assembly references that the profiler will add in the ICorProfilerCallback::ModuleLoadFinished callback.

ICorProfilerCallback Interface
Provides methods that are used by the CLR to notify a code profiler when the events to which the profiler has subscribed occur.

ICorProfilerCallback2 Interface
Extends the ICorProfilerCallback interface with callbacks supported in the .NET Framework 2.0 and later versions.

ICorProfilerCallback3 Interface
Provides callback methods that the CLR uses to communicate attach and detach state information to the profiler.

ICorProfilerCallback4 Interface
Provides callback methods that the CLR uses to communicate information to the profiler.

ICorProfilerCallback5 Interface
Provides a method that identifies the transitive closure of objects referenced by garbage collection roots.

ICorProfilerCallback6 Interface
Provides a callback method that the CLR uses to notify a profiler that an assembly is loading.

ICorProfilerCallback7 Interface
Provides a callback method that the common language runtime uses to notify the profiler that the symbol stream associated with an in-memory module is updated.

ICorProfilerCallback8 Interface
Provides callback methods that the common language runtime uses to notify the profiler that JIT compilation of a dynamic method has started and finished.

ICorProfilerCallback9 Interface
Provides a callback method that the common language runtime uses to notify the profiler that a dynamic method is garbage collected and subsequently unloaded.

ICorProfilerCallback10 Interface
(.NET Core) Provides callback methods to notify the profiler that EventPipe events have been delivered to the profiler's currently active session.

ICorProfilerFunctionControl Interface
Provides methods that allow a code profiler to communicate with the CLR to control how the JIT compiler should generate code when recompiling a specific method.

ICorProfilerFunctionEnum Interface
Provides methods to sequentially iterate through a collection of functions in the CLR.

ICorProfilerInfo Interface
Provides methods for use by code profilers to communicate with the CLR to control event monitoring and request information.

ICorProfilerInfo2 Interface
Extends the ICorProfilerInfo interface with methods supported in the .NET Framework 2.0 and later versions.

ICorProfilerInfo3 Interface
Extends the ICorProfilerInfo2 interface with methods supported in the .NET Framework 4 and later versions.

ICorProfilerInfo4 Interface
Provides methods that code profilers use to communicate with the CLR to control event monitoring and to request information.

ICorProfilerInfo5 Interface
Provides methods for use by code profilers to communicate with the CLR to control event monitoring.

ICorProfilerInfo6 Interface
Provides an enumerator to all the methods that belong to a given NGen module and that are inlined in the body of a given method.

ICorProfilerInfo7 Interface
Provides a method to apply newly defined metadata to a module and that provides access to an in-memory symbol stream.

ICorProfilerInfo8 Interface
Provides methods to query information about dynamic methods.

ICorProfilerInfo9 Interface
(.NET Core) Provides methods to query information about functions with multiple native code versions.

ICorProfilerInfo10 Interface
(.NET Core) Provides methods to modify function IL, query information from the runtime, and suspend and resume the runtime.

ICorProfilerInfo11 Interface
(.NET Core) Provides methods to get and set environment variables in the process.

ICorProfilerInfo12 Interface
(.NET Core) Provides methods to create EventPipe sessions, events, and providers.

ICorProfilerInfo13 Interface
(.NET Core) Provides methods to manage weak, strong, and pinned handles that wrap objects.

ICorProfilerModuleEnum Interface
Provides methods to sequentially iterate through a collection of modules loaded by the application or the profiler.

ICorProfilerObjectEnum Interface
Provides methods to sequentially iterate through a collection of frozen objects that are generated by Ngen.exe (Native Image Generator).

ICorProfilerThreadEnum Interface
Provides methods to sequentially iterate through a collection of threads in the CLR.

IMethodMalloc Interface
Provides the Alloc method to allocate memory for a new common intermediate language (CIL) function body.

Profiling Overview

Profiling Global Static Functions

Profiling Enumerations

Profiling Structures