ICorProfilerInfo4::GetCodeInfo3 方法
取得與經過 JIT 重新編譯的指定函式版本關聯的機器碼範圍。
語法
HRESULT GetCodeInfo3(
[in] FunctionID functionID,
[in] ReJITID reJitId,
[in] ULONG32 cCodeInfos,
[out] ULONG32 *pcCodeInfos,
[out, size_is(cCodeInfos), length_is(*pcCodeInfos)]
COR_PRF_CODE_INFO codeInfos[]);
參數
functionID
[in] 與機器碼關聯的函式識別碼。
reJitId
[in] 經過 JIT 重新編譯的函式識別。
cCodeInfos
[in] codeInfos
陣列的大小。
pcCodeInfos
[out] 可用之 COR_PRF_CODE_INFO 結構總數的指標。
codeInfos
[out] 呼叫者提供的緩衝區。 方法傳回之後,它會包含 COR_PRF_CODE_INFO
結構的陣列,其中每個結構各描述一個機器碼區塊。
備註
GetCodeInfo3
方法類似 GetCodeInfo2,不同之處在於它會針對包含指定 IP 位址的函式,取得經過 JIT 重新編譯的函式 ID。
注意
GetCodeInfo3
可能觸發記憶體回收,GetCodeInfo2 則不會。 如需詳細資訊,請參閱 CORPROF_E_UNSUPPORTED_CALL_SEQUENCE HRESULT。
範圍是以遞增的通用中繼語言 (CIL) 位移順序來排序。
GetCodeInfo3
傳回之後,您必須確認 codeInfos
緩衝區夠大,足以包含所有 COR_PRF_CODE_INFO 結構。 若要這樣做,請比較 cCodeInfos
的值與 cchName
參數的值。 如果 cCodeInfos
除以 COR_PRF_CODE_INFO 結構的大小之後小於 pcCodeInfos
,請配置較大的 codeInfos
緩衝區,以新的較大大小更新 cCodeInfos
,然後再呼叫 GetCodeInfo3
一次。
或者,您也可以先使用長度為零的 codeInfos
緩衝區來呼叫 GetCodeInfo3
,以取得正確的緩衝區大小。 您可以接著將 codeInfos
緩衝區大小設定為 pcCodeInfos
傳回的值乘以 COR_PRF_CODE_INFO 結構的大小,然後再呼叫 GetCodeInfo3
一次。
規格需求
平台:請參閱系統需求。
標頭: CorProf.idl、CorProf.h
程式庫:CorGuids.lib
.NET Framework版本:自 4.5 起可用