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 moduleIDmethodDef 标记为 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 起可用

另请参阅