ICorProfilerCallback4::ReJITError 方法
通知探查器即时 (JIT) 编译器在重新编译过程中遇到错误。
语法
HRESULT ReJITError(
[in] ModuleID moduleId,
[in] mdMethodDef methodId,
[in] FunctionID functionId,
[in] HRESULT hrStatus);
参数
moduleID
[in] 尝试重新编译失败的 ModuleID
。
methodId
[in] 尝试重新编译失败的方法的 MethodDef
。
functionId
[in] 正在重新编译或标记为重新编译的函数实例。 如果失败基于每个方法而非每个实例化(例如,如果探查器为要重新编译的方法指定了无效的元数据标记),则此值可能为 NULL
。
hrStatus
[in] 指示失败性质的 HRESULT。 有关值列表,请参阅状态 HRESULTS 部分。
返回值
将忽略此回调的返回值。
状态 HRESULTS
状态数组 HRESULT | 说明 |
---|---|
E_INVALIDARG | moduleID 或 methodDef 标记为 NULL 。 |
CORPROF_E_DATAINCOMPLETE | 该模块尚未完全加载,或正在被卸载。 |
CORPROF_E_MODULE_IS_DYNAMIC | 指定的模块是动态生成的(例如,由 Reflection.Emit ),因此不受此方法支持。 |
CORPROF_E_FUNCTION_IS_COLLECTIBLE | 方法实例化为可回收程序集,因此无法重新编译。 请注意,在非反射上下文中定义的类型和函数(例如,List<MyCollectibleStruct> )可实例化为可回收程序集。 |
E_OUTOFMEMORY | 尝试为 JIT 重新编译标记指定方法时,CLR 内存不足。 |
其他 | 操作系统返回了 CLR 控件范围之外的失败。 例如,如果用于更改内存页访问权限保护的系统调用失败,则会显示操作系统错误。 |
要求
平台:请参阅系统要求。
头文件: CorProf.idl、CorProf.h
库:CorGuids.lib
.NET Framework 版本:自 4.5 起可用