Aracılığıyla paylaş


ICorDebugModule2::ApplyChanges Yöntemi

Meta verilerdeki değişiklikleri ve ortak ara dil (CIL) kodundaki değişiklikleri çalışan işleme uygular.

Sözdizimi

HRESULT ApplyChanges (
    [in] ULONG                       cbMetadata,
    [in, size_is(cbMetadata)] BYTE   pbMetadata[],
    [in] ULONG                       cbIL,
    [in, size_is(cbIL)] BYTE         pbIL[]
);

Parametreler

cbMetadata [in] Delta meta verilerinin bayt cinsinden boyutu.

pbMetadata [in] Delta meta verilerini içeren arabellek. Arabelleğin adresi IMetaDataEmit2::SaveDeltaToMemory yönteminden döndürülür.

Meta verilerdeki göreli sanal adresler (RVA) CIL kodunun başlangıcına göre olmalıdır.

cbIL [in] Delta CIL kodunun bayt cinsinden boyutu.

pbIL [in] Güncelleştirilmiş CIL kodunu içeren arabellek.

Açıklamalar

pbMetadata parametresi özel bir delta meta veri biçimindedir (IMetaDataEmit2::SaveDeltaToMemory tarafından çıktı olarak). pbMetadata önceki meta verileri bir temel olarak alır ve bu tabana uygulanacak tek tek değişiklikleri açıklar.

Buna karşılık, pbIL[] parametresi güncelleştirilmiş yöntem için yeni CIL'yi içerir ve bu yöntem için önceki CIL'nin tamamen değiştirilmesi amaçlanır

Hata ayıklayıcının belleğinde delta CIL ve meta veriler oluşturulduğunda, hata ayıklayıcı değişiklikleri ortak dil çalışma zamanına (CLR) göndermek için çağırır ApplyChanges . Çalışma zamanı meta veri tablolarını güncelleştirir, yeni CIL'yi işleme yerleştirir ve yeni CIL'nin tam zamanında (JIT) derlemesini ayarlar. Değişiklikler uygulandığında, hata ayıklayıcısı sonraki düzenleme oturumuna hazırlanmak için IMetaDataEmit2::ResetENCLog çağrısı yapmalıdır. Hata ayıklayıcı daha sonra işleme devam edebilir.

Hata ayıklayıcısı delta meta verileri olan bir modülü her çağırdığı ApplyChanges zaman, değişiklikleri yaymak için kullanılan kopya dışında modülün meta verilerinin tüm kopyalarında aynı delta meta verilerine sahip IMetaDataEmit::ApplyEditAndContinue'u da çağırmalıdır. Meta verilerin bir kopyası bir şekilde gerçek meta verilerle eşitlenmemiş hale gelirse, hata ayıklayıcı her zaman bu kopyayı atabilir ve yeni bir kopya alabilir.

ApplyChanges Yöntem başarısız olursa, hata ayıklama oturumu geçersiz durumdadır ve yeniden başlatılması gerekir.

Gereksinimler

Platform: Bkz. .NET tarafından desteklenen işletim sistemleri.

Üstbilgi: CorDebug.idl, CorDebug.h

Kütüphane: CorGuids.lib

.NET sürümleri: .NET Framework 2.0'dan itibaren kullanılabilir