FunctionLeave 函数
通知探查器某个函数将要返回到调用方。
注意
.NET Framework 2.0 中已弃用 FunctionLeave
函数。 它将继续运行,但会导致性能下降。 改为使用 FunctionLeave2 函数。
语法
void __stdcall FunctionLeave (
[in] FunctionID funcID
);
参数
funcID
[in] 正在返回的函数的标识符。
注解
FunctionLeave
函数是一个回调;必须实现它。 实现必须使用 __declspec
(naked
) 存储类属性。
在调用此函数之前,执行引擎不会保存任何寄存器。
进入时,你需要保存你使用的所有寄存器,包括浮点单元 (FPU) 中的那些寄存器。
退出时,你需要还原堆栈,方法是通过弹出由其调用方推送的所有参数。
FunctionLeave
的实现不应被阻止,因为它将延迟垃圾回收。 实现不应尝试垃圾回收,因为堆栈可能不处于对垃圾回收有利的状态。 如果尝试了垃圾回收,运行时将被阻止,直到 FunctionLeave
返回。
此外,FunctionLeave
函数不得调入托管代码,也不得以任何方式导致托管内存分配。
要求
平台:请参阅系统要求。
标头:CorProf.idl
库:CorGuids.lib
.NET Framework 版本:1.1、1.0