2012-01-06 26 views
7

Herkes, SafeMM hata ayıklama belleği yöneticisini Delphi XE2'ye taşıdı mı? RTL artık bellek işlevleri için Tamsayı yerine NativeInt kullandığı için 2009 SafeMM on CodeCentral derlenmez.Delphi XE2 için SafeMM

+0

Uygun olduğunda "Tamsayı" ifadelerini yalnızca "NativeInt" olarak değiştirmediniz mi? – LaKraven

+1

Bu kadar basit olacağından emin değilim. Kendimi yapmaya çalıştığımdan önce SafeWo 'yu Win64' e taşıdı mı diye soracaktım, bu yüzden başkalarının çabalarını gereksiz yere kopyalamıyorum. –

+2

İnsanların çoğu, günümüzde tam hata ayıklama modunda [FastMM] (http://sourceforge.net/projects/fastmm/) kullanmıyor mu? Şimdiye kadar attığım neredeyse tüm nastileri yakalamış gibi görünüyor ve tamamen XE2 ve 64-bit. –

cevap

3

CodeCentral'a Delphi XE2 port of SafeMM yükledim. 4 GB'den büyük blokları doğru şekilde ayırdığını ve bir Win64 uygulamasında kullanıldığında 4 GB'dan daha küçük bloklar ayırabildiğini ve hala Win32 uygulamalarında düzgün çalıştığını doğruladım.

Codehment gönderimimi 7 Temmuz 2012'de, iki iş parçacığı aynı anda büyük bir bloğu (> 4 KB) serbest bırakmaya çalışırken SafeMM'nin çökmesine neden olan bir hatayı düzeltmek için güncelledim. Bu hata, orijinal geliştirici tarafından SafeMM'nin 0.3 sürümünde tanıtıldı. Güvenli sürümün bu sürümünü Delphi'nin eski bir sürümü ile kullanıyorsanız, kodumu FreeLargeBlock sürümünde sürümde yaptığım gibi kritik bir bölüme sarmanız gerekir.

İlgili konular