Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Debugging Native Memory Use

Address Sanitizer: HWASan / ASan

Pengembang platform Android menggunakan HWAddressSanitizer (HWASan) untuk menemukan bug memori di C / C ++.

Anda dapat mem-flash gambar HWASan prebuilt ke perangkat Pixel yang didukung dari ci.android.com ( petunjuk penyiapan mendetail ).

Sejak Android 8.0 (Oreo), ASan juga dapat digunakan untuk men-debug aplikasi pada perangkat produksi yang tidak di-rooting. Anda dapat menemukan petunjuk di wiki ASan .

Heapprofd

Android 10 mendukung heapprofd, profiler heap pengambilan sampel dengan overhead rendah. heapprofd memungkinkan Anda mengatribusikan penggunaan memori native ke callstacks dalam program Anda. Lihat heapprofd - Android Heap Profiler di situs dokumentasi Perfetto untuk informasi selengkapnya.

Debug Malloc

Lihat Malloc Debug danPelacakan Memori Asli menggunakan Callback libc untuk penjelasan menyeluruh tentang opsi debug yang tersedia untuk masalah memori asli.

libmemunreachable

Libmemunreachable Android adalah detektor kebocoran memori native tanpa overhead. Ini menggunakan pengumpul sampah mark-and-sweep yang tidak tepat melewati semua memori asli, melaporkan setiap blok yang tidak dapat dijangkau sebagai kebocoran. Lihat dokumentasi libmemunreachable untuk petunjuk penggunaan.

Pengait Malloc

Jika Anda ingin membuat alat Anda sendiri, libc Android juga mendukung intersepsi semua panggilan alokasi / gratis yang terjadi selama eksekusi program. Lihat dokumentasi malloc_hooks untuk petunjuk penggunaan.

Statistik Malloc

Android mendukung mallinfo(3) danmalloc_info(3) ke <malloc.h> . Fungsi malloc_info tersedia di Android 6.0 (Marshmallow) dan yang lebih tinggi dan skema XML-nya didokumentasikan di <malloc.h> Bionic.

Server Monitor Debug Dalvik

Anda juga dapat menggunakan Dalvik Debug Monitor Server (DDMS) untuk mendapatkan tampilan grafis dari keluaran Malloc Debug.

Untuk menggunakan DDMS, pertama-tama aktifkan UI memori native:

  1. Buka ~/.android/ddms.cfg
  2. Tambahkan baris: native=true

Setelah meluncurkan kembali DDMS dan memilih proses, Anda dapat beralih ke tab alokasi asli baru dan mengisinya dengan daftar alokasi. Ini sangat berguna untuk men-debug kebocoran memori.