Aracılığıyla paylaş


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 FunctionIDbir için ilk olup olmadığını gösteren Boole değeri. true Belirli FunctionIDbir 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

Ayrıca bkz.