ICorProfilerInfo::SetILInstrumentedCodeMap Yöntemi
Belirtilen ortak ara dil (CIL) eşleme girdilerini kullanarak belirtilen işlev için bir kod eşlemesi ayarlar.
Not
.NET Framework sürüm 2.0'da, belirli bir FunctionID
uygulama etki alanındaki genel bir işlevi temsil eden bir üzerinde çağrılmasıSetILInstrumentedCodeMap
, bu işlevin uygulama etki alanındaki tüm örneklerini etkiler.
Sözdizimi
HRESULT SetILInstrumentedCodeMap(
[in] FunctionID functionId,
[in] BOOL fStartJit,
[in] ULONG cILMapEntries,
[in, size_is(cILMapEntries)] COR_IL_MAP rgILMapEntries[]);
Parametreler
functionId
[in] Kod eşlemesinin ayarlanacağı işlevin kimliği.
fStartJit
[in] Yöntemine SetILInstrumentedCodeMap
yapılan çağrının belirli FunctionID
bir için ilk olup olmadığını gösteren Boole değeri. true
Belirli FunctionID
bir için ve bundan sonra için ilk çağrısında SetILInstrumentedCodeMap
olarak false
ayarlayınfStartJit
.
cILMapEntries
[in] Dizideki cILMapEntries
öğelerin sayısı.
rgILMapEntries
[in] Her biri bir CIL uzaklığını belirten COR_IL_MAP yapıları dizisi.
Açıklamalar
Profil oluşturucu genellikle yöntemi izlemek için yöntemin kaynak koduna deyimler ekler (örneğin, belirli bir kaynak satıra ulaşıldığında bildirimde bulunur). SetILInstrumentedCodeMap
bir profil oluşturucunun özgün CIL yönergelerini yeni konumlarıyla eşlemesini sağlar. Profil oluşturucu, belirli bir yerel uzaklık için özgün CIL uzaklığını almak için ICorProfilerInfo::GetILToNativeMapping yöntemini kullanabilir.
Hata ayıklayıcı, her eski uzaklık özgün, değiştirilmemiş CIL kodu içindeki bir CIL uzaklığını ifade eder ve her yeni uzaklık yeni, izlemeli kod içindeki CIL uzaklığını ifade eder. Harita artan düzende sıralanmalıdır. Adımlamanın düzgün çalışması için şu yönergeleri izleyin:
İzlemeli CIL kodunu yeniden sıralamayın.
Özgün CIL kodunu kaldırmayın.
Program veritabanı (PDB) dosyasındaki tüm sıra noktaları için girişleri haritaya ekleyin. Eşleme eksik girişleri ilişkilendirmez. Bu nedenle, aşağıdaki haritayı göz önünde bulundurarak:
(0 eski, 0 yeni)
(5 eski, 10 yeni)
(9 eski, 20 yeni)
Eski bir 0, 1, 2, 3 veya 4 uzaklığı yeni uzaklık 0'a eşlenir.
Eski 5, 6, 7 veya 8 uzaklığı yeni 10 uzaklığıyla eşlenir.
9 veya üzeri eski bir uzaklık, yeni 20 uzaklığıyla eşlenir.
Yeni 0, 1, 2, 3, 4, 5, 6, 7, 8 veya 9 uzaklığı eski 0 uzaklığıyla eşlenir.
Yeni 10, 11, 12, 13, 14, 15, 16, 17, 18 veya 19 uzaklığı eski uzaklık 5'e eşlenir.
20 veya üzeri yeni bir uzaklık, eski uzaklık 9'a eşlenir.
.NET Framework 3.5 ve önceki sürümlerinde, CoTaskMemAlloc yöntemini çağırarak diziyi ayırırsınızrgILMapEntries
. Çalışma zamanı bu belleğin sahipliğini aldığından, profil oluşturucu belleği boşaltmaya çalışmamalıdır.
Gereksinimler
Platformlar: Bkz. Sistem Gereksinimleri.
Üst bilgi: CorProf.idl, CorProf.h
Kitaplık: CorGuids.lib
.NET Framework Sürümleri: 1.1 sürümünden itibaren kullanılabilir