Adres Temizleyici: HWASan/ASan
Android platformu geliştiricileri, C/C++'da bellek hatalarını bulmak için HWAddressSanitizer (HWASan) kullanır.
Önceden oluşturulmuş HWASan görüntülerini ci.android.com'dan desteklenen Pixel cihazlarına flaş edebilirsiniz ( ayrıntılı kurulum talimatları ).
Android 8.0'dan (Oreo) beri, köklü olmayan üretim cihazlarındaki uygulamalarda hata ayıklamak için ASan'ı kullanmak da mümkündür. Talimatları ASan wiki'sinde bulabilirsiniz.heapprofd
Android 10, düşük maliyetli, örnekleme yığın profili oluşturucu olan heapprofd'u destekler. heapprofd, yerel bellek kullanımını programınızdaki çağrı yığınlarına bağlamanıza olanak tanır. Daha fazla bilgi için Perfetto dokümantasyon sitesinde heapprofd - Android Heap Profiler'a bakın.
Malloc hata ayıklama
Yerel bellek sorunları için kullanılabilen hata ayıklama seçeneklerinin ayrıntılı açıklaması içinlibc Geri Aramaları kullanarak Malloc Hata Ayıklama ve Yerel Bellek İzleme'ye bakın.
libmemunulaşılabilir
Android'in libmemunreachable'ı, sıfır yüke dayalı bir yerel bellek sızıntısı detektörüdür. Tüm yerel bellek üzerinden kesin olmayan bir işaretle ve süpür çöp toplayıcı geçişi kullanır ve erişilemeyen 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ın yürütülmesi sırasında meydana gelen tüm tahsis/ücretsiz aramaları durdurmayı da destekler. Kullanım talimatları için malloc_hooks belgelerine bakın.
Malloc istatistikleri
Android, <malloc.h>
öğesinin mallinfo(3)
ve malloc_info(3)
uzantılarını destekler. malloc_info
işlevi Android 6.0 (Marshmallow) ve üzeri sürümlerde mevcuttur ve XML şeması <malloc.h>
belgelenmiştir.
Dalvik Hata Ayıklama İzleyici Sunucusu
Malloc Hata Ayıklama çıktısının grafiksel bir görünümünü elde etmek için Dalvik Hata Ayıklama İzleyici Sunucusunu (DDMS) da kullanabilirsiniz.
DDMS'yi kullanmak için önce yerel bellek kullanıcı arabirimini açın:
-
~/.android/ddms.cfg
açın - Satırı ekleyin:
native=true
DDMS'yi yeniden başlattıktan ve bir süreç seçtikten sonra, yeni yerel tahsis sekmesine geçebilir ve onu bir tahsis listesiyle doldurabilirsiniz. Bu, özellikle bellek sızıntılarında hata ayıklamak için kullanışlıdır.