Adres Temizleyici: HWASan/ASan
Android platformu geliştiricileri, C/C++'daki bellek hatalarını bulmak için HWAddressSanitizer'ı (HWASan) kullanıyor.
Ci.android.com adresinden önceden oluşturulmuş HWASan görüntülerini desteklenen Pixel cihazlara aktarabilirsiniz ( ayrıntılı kurulum talimatları ).
Android 8.0'dan (Oreo) beri, root erişimi olmayan üretim cihazlarındaki uygulamalarda hata ayıklamak için ASan'ı kullanmak da mümkündür. Talimatları ASan wiki'sinde bulabilirsiniz.Çok profd
Android 10, düşük maliyetli, örnekleme yığın profili oluşturucusu olan heapprofd'yi 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ına yönelik mevcut hata ayıklama seçeneklerinin kapsamlı bir açıklaması için libc Geri Aramalarını kullanarak Malloc Hata Ayıklama ve Yerel Bellek İzleme'ye bakın.
libmeunreachable
Android'in libmemunreachable'ı sıfır yüke sahip yerel bellek sızıntısı dedektörüdür. Tüm yerel bellek üzerinde 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 aynı zamanda programın yürütülmesi sırasında gerçekleşen tüm tahsis/ücretsiz aramaların durdurulmasını 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 üzeri sürümlerde mevcuttur ve XML şeması Bionic'in <malloc.h>
dosyasında belgelenmiştir.
Dalvik Hata Ayıklama Monitörü Sunucusu
Malloc Debug çıktısının grafiksel görünümünü elde etmek için Dalvik Debug Monitor Server'ı (DDMS) da kullanabilirsiniz.
DDMS'yi kullanmak için öncelikle yerel bellek kullanıcı arayüzünü açın:
-
~/.android/ddms.cfg
dosyasını açın - Şu satırı ekleyin:
native=true
DDMS'yi yeniden başlattığınızda ve bir işlem seçtiğinizde, yeni yerel tahsis sekmesine geçebilir ve bunu bir tahsis listesiyle doldurabilirsiniz. Bu özellikle bellek sızıntılarında hata ayıklamak için kullanışlıdır.