Şu anda sadece Linux için çalışıyor. DBGMEM GNU Genel Kamu Lisansı altında yayınlandı
aracı gibi sorunları bulmak için yardımcı olur
& Nbsp; 1. bellek sızıntıları
& Nbsp; 2. yığın bellek bozulması
& Nbsp; 3. Kötüye seçilen standart kütüphane fonksiyonları yasadışı argüman.
& Nbsp; 4. yolsuzluk yığını
& Nbsp; 5. Serbest veya un başlatıldı yığın bellek kullanımı.
& Nbsp; 6. Aracı genişletmek için izin verir, ek API argümanlar kontrol
aracı özelliklerini eklemek için GLIBC bellek ayırma fonksiyonları, hafıza ve dize işleme fonksiyonları geçersiz kılar.
Bazı gelişmiş özellikleri kullanabilmek için programınızı değiştirmek isteyebilirsiniz ama DBGMEM, programınız herhangi bir değişiklik gerektirmez.
DBGMEM C ve C ++ programları için açık kaynak kodlu bir bellek debugger ve Linux işletim sistemi altında çalışan ve GNU Kısıtlı Genel Kamu Lisansı altında yayınlandı. DBGMEM Glibc standart kütüphane kısımlarına ayıklama kontrolleri ekler; Bu debug işlemin adres alanına yüklenir paylaşılan kütüphaneler olarak uygulanmaktadır.
Araçlar
DBGMEM, her ayıklanmış programa yerleştirilebilir çeşitli bellek hata ayıklama araçları vardır; Basit aracı tüm ayrılmış bellek bloklarının izler ve bu blok ayrılan bellek bloğu önündeki bir arena başlığına tahsis edildiği tarihte yığın olarak defter tutma bilgisini ekliyor; aynı zamanda öncesi ve tahsis edilen bloğun sonra bir bekçi kelime ekler; basit bir araçtır iyi bellek sızıntısı problemlerinin tespiti için kullanılır; arena başlığı ayıklanacak program tarafından bozulmuş alabilirsiniz olarak. aldı kontrol anonim Bellek eşlemeli dosya yığının kapalı tüm defter tutma bilgi tutar; Bu bellek üzerine böcek dayanacak araç daha sağlam hale getirir. kontrol aracı da hızlı bir şekilde yığın bloğu içinde yer alan bir işaretçi değeri herhangi bir yığın blokta bilgi aramak için yeteneği ekler; kontrol aracı, bu işlevler tarafından çökertilmesi mümkün yığının için ortak dize parametreleri ve bellek düzenleme işlevlerini ve çeklerin doğrulama ekler.
Operasyonun Mod
Olduğu gibi hata ayıklayıcı en programları çalıştırabilirsiniz; ayıklanmış programı gerektirmeyen aracı herhangi bir özel kütüphaneleri ile bağlantılı olduğu; aracı DLL Enjeksiyon tekniği vasıtasıyla kontrol edilir bir sürecin adres alanına yüklenir paylaşılan bir kütüphanedir. Dinamik bağlayıcı LD_PRELOAD özellik başka bir kütüphane yüklenmeden önce, ilk olarak kütüphane paylaşılan araçları yüklemek için kullanılır; bellek ayırma ve dize işleme fonksiyonu yakalanan ve ilk aracı kütüphanesinden denir; Bu onun çekleri eklemek için aracı sağlar. Daha ayıklanmış sürecin sona ermesinden sonra işlenen bir ham rapor yazılır ayıklanacak sürecin zamanı sırasında; augmented rapor ham raporda yer alan izleri yığını sembolik fonksiyon isimleri ekler. Gdb debugger ham raporun daha fazla işlem sırasında sembolik adreslerine sayısal adreslerini açmak için kullanılır
Özellikler :.
- Bellek sızıntıları ; Bu kontrol aracı ve basit araçları için de geçerlidir. aracı blok tahsis edildi zamanda alınan yığın izleme ile birlikte her bir tahsis yığın bloğu izler; ayrıca bir tamsayı etiketi bu değer bloğu tahsis edilmiştir zamanı karakterize eden bir mantıksal dönemi / `nesil 'izler, her tahsisi ile tutulur. Kullanıcı tarafından istendiğinde bu bilgilerin bir rapor her zaman işlem Çıkışta üretilen veya. Bu bilgiler bellek sızıntıları örneklerini ve nedenlerini bulmak için yardımcı olur.
- değil başlatıldı yığın bellek veya serbest yığın bellek kullanımı; Bu kontrol aracı ve basit araçları için de geçerlidir. aracı bayt değeri 0xDD ve bayt değeri 0xEE tüm serbest belleğe tüm yeni ayrılan bellek setleri; Bu değerlerin kullanılması genellikle bu bellek alanı bir gösterici içeriyorsa, o zaman çökmesine yol açacaktır değer 0xDDDDDDDD bir işaretçi kaldırma, hataları programlamak yol açar.
- Heap bellek bozulması; Bu kontrol aracı ve basit araçları için de geçerlidir. yazar ve her yığın blokta bir bellek önek ve sonek koyarak underwrites bellek aracı denetler; soneki değeri daha sonra değiştirilirse / underwrite bir yığın üzerine yazma algılanır.
- Bu, yalnızca '' 'kontrol aracı' 'için de geçerlidir; Glibc dize düzenleme işlevlerini ve bellek kopyası / glibc ve hareket fonksiyonlarının kullanımı; araç yaygın standart kütüphane fonksiyonları üzerinde ilk geçiş alır bu kontrol işlevleri tarafından yolsuzluk yığını, bu işlev mevcut bir argüman yığın blok üzerine yazmaz olduğu kontrol edilir; o da çağıran parçacığı yığın bozuk olmayacak kontrol edilir.
Bu sürümdeki yeni Nedir:
- Şimdi alır yapmak CFLAGS ortam değişkeni
- -ldl seçeneği ile dbgmem kütüphane inşa
- paylaşımlı kütüphane artık, (uname -r) dizin lib / $ yerleştirilir.
- Bazı sistemlerde düzeltme derleme (configure adım)
- çalıştırılamıyor seçeneği eklemek (-m - yığını bazı nesiller için sadece izleri oluşturmak)
Glibc çekirdek sürümü ile evli olarak
nedir sürüm 1.9.1 Yeni:
- komut güncellenen yapmak, artık gerekli algılamaya çalışır built ayarları; hala şimdi automake yapmak değil nasıl olsa
- gcc 2.9.6 için C modunda derleme hatası sabit; gcc hala C ++ iç hatasıyla çöküyor modu, dahili
- seçeneği -g (malloc eşleştirme için denetimi devre dışı bırakmak / Yeni / yeni [] ve serbest / silme / silme [] C ++ modu) eklenen
sürüm 1.7 yeni Nedir:
- gibi (çatal ve exec çağrıları takip edin -F seçeneği eklendi Çatal / exec)
- Şimdi rapor dosyasının başlığında debug sürecin komut satırı yazdırır.
- Harita dosya adı artık pid içerir.
- varsayılan ham rapor dosyaları silmek; Bunların çok fazla var;
- sprintf tüm kullanımları snprintf değiştirildi
Yorum Bulunamadı