FunctionEnter3WithInfo 函数
更新:2010 年 10 月
通知探查器正在将控件传递给函数,并提供一个可以传递给 ICorProfilerInfo3::GetFunctionEnter3Info method 的处理程序,以检索堆栈帧和函数参数。
void __stdcall FunctionEnter3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
参数
functionIDOrClientID
[in] 控件所传递到的函数的标识符。eltInfo
[in] 一个不透明的句柄,表示有关给定的堆栈帧的信息。 此句柄仅在其传递到的回调过程中有效。
备注
在调用函数时,FunctionEnter3WithInfo 回调方法会通知探查器,并允许探查器使用 ICorProfilerInfo3::GetFunctionEnter3Info method 检查参数值。 若要访问参数信息,必须设置 COR_PRF_ENABLE_FUNCTION_ARGS 标志。 探查器可以使用 ICorProfilerInfo::SetEventMask 方法设置事件标志,然后使用 ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo 方法注册此函数的实现。
FunctionEnter3WithInfo 函数是回调;您必须实现该函数。 该实现必须使用 __declspec(naked) 存储类特性。
执行引擎在调用此函数之前未保存任何寄存器。
在进入时,您必须保存您使用的所有寄存器,包括浮点单元 (FPU) 中的那些寄存器。
在退出时,您必须通过弹出由堆栈调用方入栈的所有参数来还原堆栈。
FunctionEnter3WithInfo 的实现不应进行阻止,因为它将延迟垃圾回收。 实现不应尝试垃圾回收,因为堆栈可能未处于适合进行垃圾回收的状态。 如果尝试进行垃圾回收,运行时将会进行阻止,直至 FunctionEnter3WithInfo 返回。
FunctionEnter3WithInfo 函数不得调入托管代码或以任何方式导致托管内存分配。
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**CorProf.idl
**库:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0
请参见
参考
其他资源
修订记录
Date |
修订记录 |
原因 |
---|---|---|
2010 年 10 月 |
已将 __stdcall 添加到语法。 |
客户反馈 |