ICorProfilerCallback 接口

提供公共语言运行时 (CLR) 使用的方法,用于在探查器订阅的事件发生时通知代码探查器。

方法

方法 说明
AppDomainCreationFinished 方法 通知探查器已创建应用程序域。
AppDomainCreationStarted 方法 通知探查器正在创建某个应用程序域。
AppDomainShutdownFinished 方法 通知探查器正在从进程中卸载应用程序域。
AppDomainShutdownStarted 方法 通知探查器正在从进程中卸载应用程序域。
AssemblyLoadFinished 方法 通知探查器某个程序集已完成加载。
AssemblyLoadStarted 方法 通知探查器正在加载程序集。
AssemblyUnloadFinished 方法 通知探查器某个程序集已卸载。
AssemblyUnloadStarted 方法 通知探查器正在卸载程序集。
ClassLoadFinished 方法 通知探查器某个类已完成加载。
ClassLoadStarted 方法 通知探查器正在加载某个类。
ClassUnloadFinished 方法 通知探查器某个类已完成卸载。
ClassUnloadStarted 方法 通知探查器正在卸载某个类。
COMClassicVTableCreated 方法 通知探查器已为指定的 IID 和类创建运行时可调用包装器 (RCW)。
COMClassicVTableDestroyed 方法 通知探查器正在销毁某个 RCW。
ExceptionCatcherEnter 方法 通知探查器正在向相应的 catch 块传递控制。
ExceptionCatcherLeave 方法 通知探查器正在从相应的 catch 块中传出控制。
ExceptionCLRCatcherExecute 方法 在 2.0 版 .NET Framework 中已过时。
ExceptionCLRCatcherFound 方法 在 .NET Framework 2.0 中已过时。
ExceptionOSHandlerEnter 方法 未实现。 需要非托管异常信息的探查器必须通过其他方式获取此信息。
ExceptionOSHandlerLeave 方法 未实现。 需要非托管异常信息的探查器必须通过其他方式获取此信息。
ExceptionSearchCatcherFound 方法 通知探查器,异常处理的搜索阶段定位到了引发的异常的处理程序。
ExceptionSearchFilterEnter 方法 通知探查器正在执行某个用户筛选器。
ExceptionSearchFilterLeave 方法 通知探查器某个用户筛选器刚完成执行。
ExceptionSearchFunctionEnter 方法 通知探查器,异常处理的搜索阶段输入了一个函数。
ExceptionSearchFunctionLeave 方法 通知探查器,异常处理的搜索阶段已完成对函数的搜索。
ExceptionThrown 方法 通知探查器已引发异常。
ExceptionUnwindFinallyEnter 方法 通知探查器,异常处理的展开阶段正在输入指定函数中包含的 finally 子句。
ExceptionUnwindFinallyLeave 方法 通知探查器,异常处理的展开阶段留下了一个 finally 子句。
ExceptionUnwindFunctionEnter 方法 通知探查器,异常处理的展开阶段输入了一个函数。
ExceptionUnwindFunctionLeave 方法 通知探查器异常处理的展开阶段已完成展开某个函数。
FunctionUnloadStarted 方法 通知探查器运行时已开始卸载函数。
Initialize 方法 被调用用于在启动新的 CLR 应用程序时初始化探查器。
JITCachedFunctionSearchFinished 方法 通知探查器已完成对以前使用 NGen.exe 编译的某个函数的搜索。
JITCachedFunctionSearchStarted 方法 通知探查器已开始对以前使用 NGen.exe 编译的某个函数的搜索。
JITCompilationFinished 方法 通知探查器 JIT 编译器已完成函数的编译。
JITCompilationStarted 方法 通知探查器,实时 (JIT) 编译器已开始编译函数。
JITFunctionPitched 方法 通知探查器已从内存中删除了已 JIT 编译的函数。
JITInlining 方法 通知探查器 JIT 编译器将要将一个函数插入到另一个函数中。
ManagedToUnmanagedTransition 方法 通知探查器,已发生从托管代码到非托管代码的转换。
ModuleAttachedToAssembly 方法 通知探查器模块正在附加到其父程序集。
ModuleLoadFinished 方法 通知探查器模块已完成加载。
ModuleLoadStarted 方法 通知探查器正在加载某个模块。
ModuleUnloadFinished 方法 通知探查器模块已完成卸载。
ModuleUnloadStarted 方法 通知探查器正在卸载某个模块。
MovedReferences 方法 向探查器通知垃圾回收期间移动的对象引用。
ObjectAllocated 方法 通知探查器,堆中的内存已分配给对象。
ObjectReferences 方法 向探查器通知指定的对象所引用的内存中的对象。
ObjectsAllocatedByClass 方法 通知探查器自上一次垃圾回收以来已创建的每个指定类的实例数。
RemotingClientInvocationFinished 方法 向探查器通知,远程处理调用在客户端上已完成运行。
RemotingClientInvocationStarted 方法 通知探查器远程处理调用已启动。
RemotingClientReceivingReply 方法 通知探查器远程调用的服务器端部分已完成,客户端现在正在接收并即将处理答复。
RemotingClientSendingMessage 方法 通知探查器客户端正在向服务器发送请求。
RemotingServerInvocationReturned 方法 通知探查器,该进程已完成调用方法以响应远程方法调用请求。
RemotingServerInvocationStarted 方法 通知探查器进程正在调用方法以响应远程方法调用请求。
RemotingServerReceivingMessage 方法 通知探查器,进程正在接收远程方法调用或激活请求。
RemotingServerSendingReply 方法 通知探查器进程已完成对远程方法调用请求的处理,并即将通过通道传输答复。
RootReferences 方法 垃圾回收后,向探查器通知有关根引用的信息。
RuntimeResumeFinished 方法 通知探查器,运行时已恢复所有运行时线程并恢复正常操作。
RuntimeResumeStarted 方法 通知探查器运行时正在恢复所有运行时线程。
RuntimeSuspendAborted 方法 通知探查器,运行时已中止正在进行的运行时挂起。
RuntimeSuspendFinished 方法 通知探查器运行时已完成所有运行时线程的挂起。
RuntimeSuspendStarted 方法 通知探查器运行时即将暂停所有运行时线程。
RuntimeThreadResumed 方法 通知探查器,指定的线程在挂起后已恢复。
RuntimeThreadSuspended 方法 通知探查器,指定的线程已挂起或即将挂起。
Shutdown 方法 向探查器通知应用程序正在关闭。
ThreadAssignedToOSThread 方法 通知探查器,正在使用特定操作系统 (OS) 线程实现托管线程。
ThreadCreated 方法 通知探查器已创建线程。
ThreadDestroyed 方法 通知探查器线程已销毁。
UnmanagedToManagedTransition 方法 通知探查器已发生从非托管代码到托管代码的转换。

注解

CLR 调用 ICorProfilerCallback(或 ICorProfilerCallback2)接口中的一个方法,以在探查器订阅的事件发生时通知探查器。 这是 CLR 与代码探查器通信的主要回调接口。

代码探查器必须实现 ICorProfilerCallback 接口的方法。 对于 .NET Framework 版本 2.0 和更高版本,探查器还必须实现 ICorProfilerCallback2 方法。 每个方法实现必须返回一个 HRESULT,成功时其值为 S_OK,失败时值为 E_FAIL。 目前,CLR 忽略除 ICorProfilerCallback::ObjectReferences 之外的每个回调返回的 HRESULT。

在 Microsoft Windows 注册表中,代码探查器必须注册其实现 ICorProfilerCallbackICorProfilerCallback2 接口的组件对象模型 (COM) 对象。 代码探查器通过调用 ICorProfilerInfo::SetEventMask 订阅它想要接收通知的事件。 这通常在探查器的 ICorProfilerCallback::Initialize 实现中完成。 当事件即将发生或在正在执行的运行时进程中刚刚发生时,探查器就能够从运行时接收通知。

备注

探查器将注册一个 COM 对象。 如果探查器面向 .NET Framework 1.0 或 1.1 版本,则该 COM 对象只需实现 ICorProfilerCallback 的方法。 如果面向 .NET Framework 2.0 版或更高版本,则 COM 对象还必须实现 ICorProfilerCallback2 的方法。

要求

平台:请参阅系统要求

头文件: CorProf.idl、CorProf.h

库:CorGuids.lib

.NET Framework 版本:自 1.0 起可用

另请参阅