Adres Düzeltici: HWASan/ASan
Android platform geliştiricileri, C/C++'ta bellek hatalarını bulmak için HWAddressSanitizer'ı (HWASan) kullanır.
Hazır HWASan resimlerini ci.android.com adresinden desteklenen Pixel cihazlara yükleyebilirsiniz (ayrıntılı kurulum talimatları).
Android 8.0 (Oreo) sürümünden itibaren, rootlanmamış üretim cihazlarındaki uygulamalarda hata ayıklamak için ASan da kullanılabilir. Talimatları ASan wiki'sinde bulabilirsiniz.Heapprofd
Android 10, düşük maliyetli, örneklemeli bir yığın profili olan heapprofd'yi destekler. heapprofd, yerel bellek kullanımını programınızdaki çağrı yığınlarıyla ilişkilendirmenize olanak tanır. Daha fazla bilgi için Perfetto doküman sitesindeki heapprofd - Android Heap Profiler bölümüne bakın.
Malloc hata ayıklama
Yerel bellek sorunları için kullanılabilecek hata ayıklama seçeneklerinin ayrıntılı açıklaması için Malloc Hata Ayıklama ve libc Geri Çağırmaları ile Yerel Bellek İzleme bölümlerine bakın.
libmemunreachable
Android'in libmemunreachable, sıfır yükü olan bir yerel bellek sızıntısı algılayıcısıdır. Tüm yerel bellek üzerinde, erişilemeyen blokları sızıntı olarak bildiren, hatalı bir işaretleme ve süpürme çöp toplayıcı geçişi kullanır. Kullanım talimatları için libmemunreachable dokümanını inceleyin.
Malloc kancaları
Kendi araçlarınızı oluşturmak istiyorsanız Android'in libc'si, program yürütülmesi sırasında gerçekleşen tüm ayırma/serbest bırakma çağrılarının yakalanmasını da destekler. Kullanım talimatları için malloc_hooks belgelerine bakın.
Malloc istatistikleri
Android, <malloc.h>
'e kadar mallinfo(3)
ve malloc_info(3)
uzantılarını destekler.
malloc_info
işlevi, Android 6.0 (Marshmallow) ve sonraki sürümlerde kullanılabilir.
XML şeması, Bionic'in <malloc.h>
içeriğinde belgelenmiştir.
Dalvik Hata Ayıklama İzleyici Sunucusu
Malloc hata ayıklama çıkışının grafiksel görünümünü elde etmek için Dalvik Hata Ayıklama İzleyici Sunucusu'nu (DDMS) da kullanabilirsiniz.
DDMS'yi kullanmak için önce yerel bellek kullanıcı arayüzünü etkinleştirin:
~/.android/ddms.cfg
uygulamasını aç- Şu satırı ekleyin:
native=true
DCMS'yi yeniden başlattıktan ve bir işlem seçtikten sonra, yeni yerel ayırma sekmesine geçebilir ve bunu bir ayırma listesiyle doldurabilirsiniz. Bu, özellikle bellek sızıntılarını hata ayıklamada yararlıdır.