Aracılığıyla paylaş


ICorProfilerInfo4::GetILToNativeMapping2 Metodu

Belirtilen işlevin JIT ile yeniden derlenmiş sürümünde yer alan kod için ortak ara dil (CIL) uzaklıklarından yerel uzaklıklara bir harita alır.

Sözdizimi

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[]);

Parametreler

functionId [in] Kodu içeren işlevin kimliği.

pReJitId [in] JIT tarafından yeniden derlenen işlevin kimliği. .NET Framework 4.5'te kimlik sıfır olmalıdır.

cMap [in] Dizinin en büyük boyutu map .

pcMap [out] Kullanılabilir COR_DEBUG_IL_TO_NATIVE_MAP yapıların toplam sayısı.

map [out] Her biri COR_DEBUG_IL_TO_NATIVE_MAP uzaklıkları belirten bir yapı dizisi. Yöntem döndürdüğünde GetILToNativeMapping2 yapıların mapCOR_DEBUG_IL_TO_NATIVE_MAP bir kısmını veya tümünü içerir.

Açıklamalar

GetILToNativeMapping2ICorProfilerInfo::GetILToNativeMapping yöntemine benzer, ancak profil oluşturucunun gelecekteki sürümlerde yeniden derlenen işlevin kimliğini belirtmesine izin verir.

Not

ICorProfilerFunctionControl::SetILInstrumentedCodeMap yöntemi .NET Framework 4.5'te uygulanmaz, bu nedenle JIT ile yeniden derlenmiş işlevler, özgün olarak derlenmiş işlevden farklı bir IL-yerel eşlemesine sahip olamaz. Bu nedenle, GetILToNativeMapping2 .NET Framework 4.5'te sıfır olmayan bir JIT yeniden derlenmiş kimliğiyle çağrılamaz.

GetILToNativeMapping2 yöntemi bir yapı dizisi COR_DEBUG_IL_TO_NATIVE_MAP döndürür. Belirli yerel yönerge aralıklarının özel kod bölgelerine (örneğin, prolog) karşılık geldiğini iletmek için, dizideki bir girdinin alanı CorDebugIlToNativeMappingTypes sabit listesi değerine ayarlanmış olabilirilOffset.

Dönüşlerin ardından GetILToNativeMapping2 , arabelleğin map tüm COR_DEBUG_IL_TO_NATIVE_MAP yapıları içerecek kadar büyük olduğunu doğrulamanız gerekir. Bunu yapmak için değerini cMap parametresinin değeriyle karşılaştırın pcMap . pcMap Değer, bir COR_DEBUG_IL_TO_NATIVE_MAP yapının boyutuyla çarpıldığında değerinden büyüksecMap, daha büyük bir arabellek ayırın, yeni, daha map büyük boyutla güncelleştirin cMap ve yeniden çağırınGetILToNativeMapping2.

Alternatif olarak, doğru arabellek boyutunu elde etmek için önce sıfır uzunlukta map bir arabellekle çağırabilirsinizGetILToNativeMapping2. Ardından arabellek boyutunu içinde döndürülen pcMap değere ayarlayabilir ve yeniden çağırabilirsiniz GetILToNativeMapping2 .

Gereksinimler

Platformlar: Bkz. Sistem Gereksinimleri.

Üst bilgi: CorProf.idl, CorProf.h

Kitaplık: CorGuids.lib

.NET Framework Sürümleri: 4.5 sürümünden itibaren kullanılabilir

Ayrıca bkz.