共用方式為


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 起可用

另請參閱