Bagikan melalui


Metode ICorProfilerInfo4::GetILToNativeMapping2

Mendapatkan peta dari offset bahasa perantara umum (CIL) ke offset asli untuk kode yang terkandung dalam versi fungsi yang dikompilasi ulang JIT.

Sintaks

HRESULT GetILToNativeMapping2(
    [in] FunctionID functionId,
    [in] ReJITID reJitId,
    [in] ULONG32 cMap,
    [out] ULONG32 *pcMap,
    [out, size_is(cMap), length_is(*pcMap)]
        COR_DEBUG_IL_TO_NATIVE_MAP map[]);

Parameter

functionId [di] ID fungsi yang berisi kode.

pReJitId [in] Identitas fungsi kompilasi ulang JIT. Identitas harus nol dalam .NET Framework 4.5.

cMap [in] Ukuran maksimum array map.

pcMap [out] Jumlah total struktur COR_DEBUG_IL_TO_NATIVE_MAP yang tersedia.

map [out] Array COR_DEBUG_IL_TO_NATIVE_MAP struktur, yang masing-masing menentukan offset. Setelah metode GetILToNativeMapping2 kembali, map akan berisi beberapa atau semua struktur COR_DEBUG_IL_TO_NATIVE_MAP.

Keterangan

GetILToNativeMapping2 mirip dengan metode ICorProfilerInfo::GetILToNativeMapping, kecuali bahwa itu akan memungkinkan profiler untuk menentukan ID fungsi yang dikompilasi ulang di rilis mendatang.

Catatan

Metode ICorProfilerFunctionControl::SetILInstrumentedCodeMap tidak diimplementasikan dalam .NET Framework 4.5, sehingga fungsi yang telah dikompilasi ulang JIT tidak dapat memiliki pemetaan IL-ke-asli yang berbeda dari fungsi yang awalnya dikompilasi. Dengan demikian, GetILToNativeMapping2 tidak dapat dipanggil dengan ID kompilasi ulang JIT nonzero di .NET Framework 4.5.

Metode GetILToNativeMapping2 mengembalikan array struktur COR_DEBUG_IL_TO_NATIVE_MAP. Untuk menyampaikan bahwa rentang tertentu dari petunjuk asli sesuai dengan wilayah kode khusus (misalnya, prolog), entri dalam array dapat memiliki bidang ilOffset miliknya yang diatur ke nilai enumerasi CorDebugIlToNativeMappingTypes.

Setelah GetILToNativeMapping2 dikembalikan, Anda harus memverifikasi bahwa buffer map cukup besar untuk berisi semua struktur COR_DEBUG_IL_TO_NATIVE_MAP. Untuk melakukannya, bandingkan nilai cMap dengan nilai parameter pcMap. Jika nilai pcMap, saat dikalikan dengan ukuran struktur COR_DEBUG_IL_TO_NATIVE_MAP, lebih besar dari cMap, alokasikan buffer map yang lebih besar, perbarui cMap dengan ukuran baru yang lebih besar, dan panggil GetILToNativeMapping2 lagi.

Atau, Anda dapat terlebih dahulu memanggil GetILToNativeMapping2 dengan buffer map kosong untuk mendapatkan ukuran buffer yang benar. Kemudian, Anda dapat mengatur ukuran buffer ke nilai yang dikembalikan di pcMap dan memanggil GetILToNativeMapping2 lagi.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: CorProf.idl, CorProf.h

Pustaka: CorGuids.lib

Versi .NET Framework: Tersedia mulai dari 4.5

Lihat juga