Address Sanitizer: HWASan/ASan
Developer platform Android menggunakan HWAddressSanitizer (HWASan) untuk menemukan bug memori di C/C++.
Anda dapat mem-flash image HWASan bawaan ke perangkat Pixel yang didukung dari ci.android.com (petunjuk penyiapan mendetail).
Mulai Android 8.0 (Oreo), ASan dapat digunakan untuk men-debug aplikasi pada perangkat produksi yang tidak di-root. Anda dapat menemukan petunjuk di wiki ASan.Heapprofd
Android 10 mendukung heapprofd, profiler heap sampling dengan overhead rendah. heapprofd memungkinkan Anda mengatribusikan penggunaan memori native ke callstack dalam program Anda. Lihat heapprofd - Android Heap Profiler di situs dokumentasi Perfetto untuk mengetahui informasi selengkapnya.
Malloc debug
Lihat Malloc Debug dan Pelacakan Memori Native menggunakan Callback libc untuk mendapatkan penjelasan menyeluruh tentang opsi debug yang tersedia untuk masalah memori native.
libmemunreachable
libmemunreachable Android adalah detektor kebocoran memori native tanpa overhead. Alat ini menggunakan pass pengumpul sampah mark-and-sweep yang tidak akurat di semua memori native, dan melaporkan blok yang tidak dapat dijangkau sebagai kebocoran. Lihat dokumentasi libmemunreachable untuk mendapatkan petunjuk penggunaan.
Malloc hooks
Jika Anda ingin membangun alat sendiri, libc Android juga mendukung intersepsi semua panggilan alokasi/gratis yang terjadi selama eksekusi program. Lihat Dokumentasi malloc_hooks untuk mendapatkan petunjuk penggunaan.
Statistik malloc
Android mendukung ekstensi mallinfo(3) dan malloc_info(3) ke <malloc.h>.
Fungsi malloc_info tersedia di Android 6.0 (Marshmallow) dan yang lebih tinggi serta
skema XML-nya didokumentasikan dalam
<malloc.h> Bionic.
Server Monitor Debug Dalvik
Anda juga dapat menggunakan Debug Dalvik Server Monitor (DDMS) untuk mendapatkan tampilan grafis output Debug Malloc.
Untuk menggunakan DDMS, aktifkan terlebih dahulu UI memori native-nya:
- Buka
~/.android/ddms.cfg - Tambahkan baris:
native=true
Setelah meluncurkan ulang DDMS dan memilih proses, Anda dapat beralih ke tab alokasi native baru dan mengisinya dengan daftar alokasi. Hal ini sangat berguna untuk men-debug kebocoran memori.