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 map
COR_DEBUG_IL_TO_NATIVE_MAP
bir kısmını veya tümünü içerir.
Açıklamalar
GetILToNativeMapping2
ICorProfilerInfo::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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin