Address Sanitizer: HWASan/ASan
Android platform geliştiricileri, C/C++'daki bellek hatalarını bulmak için HWAddressSanitizer'ı (HWASan) kullanır.
ci.android.com adresinden desteklenen Pixel cihazlara önceden oluşturulmuş HWASan görüntülerini yükleyebilirsiniz (ayrıntılı kurulum talimatları).
Android 8.0 (Oreo) sürümünden itibaren, root erişimi olmayan üretim cihazlarındaki uygulamalarda hata ayıklamak için ASan'ı da kullanabilirsiniz. Talimatları ASan wiki sayfasında bulabilirsiniz.Heapprofd
Android 10, düşük ek yüke sahip bir örnekleme yığını profil oluşturucu olan heapprofd'u destekler. heapprofd, yerel bellek kullanımını programınızdaki çağrı yığınlarına atamanıza olanak tanır. Daha fazla bilgi için Perfetto dokümanları sitesindeki heapprofd - Android Heap Profiler başlıklı makaleyi inceleyin.
Malloc hata ayıklama
Yerel bellek sorunları için kullanılabilen hata ayıklama seçeneklerinin ayrıntılı açıklaması için Malloc Debug ve libc Geri Çağırmalarını Kullanarak Yerel Bellek İzleme başlıklı makaleleri inceleyin.
libmemunreachable
Android'in libmemunreachable'ı, sıfır ek yükle yerel bellek sızıntısı algılayıcısıdır. Tüm yerel bellekte kesin olmayan bir işaretleme ve temizleme çöp toplayıcı geçişi kullanır ve ulaşılamayan tüm blokları sızıntı olarak bildirir. Kullanım talimatları için libmemunreachable belgelerine bakın.
Malloc kancaları
Kendi araçlarınızı oluşturmak istiyorsanız Android'in libc'si, program yürütme sırasında gerçekleşen tüm ayırma/boşaltma çağrılarını yakalamayı da destekler. Kullanım talimatları için malloc_hooks belgelerine bakın.
Malloc istatistikleri
Android, <malloc.h>
için 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>
bölümünde belgelenmiştir.
Dalvik Debug Monitor Server
Malloc Debug çıkışının grafik görünümünü elde etmek için Dalvik Debug Monitor Server (DDMS)'ı da kullanabilirsiniz.
DDMS'yi kullanmak için önce yerel bellek kullanıcı arayüzünü etkinleştirin:
~/.android/ddms.cfg
uygulamasını aç- Çizgiyi ekleyin:
native=true
DDMS'yi yeniden başlattıktan ve bir işlem seçtikten sonra yeni yerel ayırma sekmesine geçip bu sekmeyi bir ayırma listesiyle doldurabilirsiniz. Bu, özellikle bellek sızıntılarında hata ayıklamak için yararlıdır.