Google 致力于为黑人社区推动种族平等。查看具体举措
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Debug dell'utilizzo della memoria nativa

Indirizzo Sanitizer: HWASan / ASan

Gli sviluppatori della piattaforma Android utilizzano HWAddressSanitizer (HWASan) per trovare bug di memoria in C / C ++.

Puoi eseguire il flashing di immagini HWASan predefinite su dispositivi Pixel supportati da ci.android.com ( istruzioni dettagliate per la configurazione ).

A partire da Android 8.0 (Oreo) è anche possibile utilizzare ASan per eseguire il debug di app su dispositivi di produzione non rooted. Puoi trovare le istruzioni sul wiki ASan .

Heapprofd

Android 10 supporta heapprofd, un profiler di heap di campionamento a basso overhead. heapprofd ti consente di attribuire l'utilizzo della memoria nativa agli stack di chiamate nel tuo programma. Vedi heapprofd - Android Heap Profiler sul sito della documentazione Perfetto per ulteriori informazioni.

Debug di Malloc

Vedere Malloc Debug eNative Memory Tracking using libc Callbacks per una descrizione completa delle opzioni di debug disponibili per problemi di memoria nativa.

libmemunreachable

Libmemunreachable di Android è un rilevatore di perdite di memoria nativa a zero overhead. Utilizza un garbage collector impreciso mark-and-sweep che passa su tutta la memoria nativa, segnalando eventuali blocchi non raggiungibili come perdite. Vedere la documentazione libmemunreachable per le istruzioni sull'utilizzo.

Ganci Malloc

Se vuoi creare i tuoi strumenti, la libc di Android supporta anche l'intercettazione di tutte le chiamate gratuite / allocazione che avvengono durante l'esecuzione del programma. Consulta la documentazione di malloc_hooks per le istruzioni sull'utilizzo.

Statistiche Malloc

Android supporta le mallinfo(3) emalloc_info(3) per <malloc.h> . La funzione malloc_info è disponibile in Android 6.0 (Marshmallow) e versioni successive e il suo schema XML è documentato in <malloc.h> di Bionic.

Dalvik Debug Monitor Server

È inoltre possibile utilizzare Dalvik Debug Monitor Server (DDMS) per ottenere una visualizzazione grafica dell'output di Malloc Debug.

Per utilizzare DDMS, attiva prima la sua interfaccia utente della memoria nativa:

  1. Apri ~/.android/ddms.cfg
  2. Aggiungi la riga: native=true

Dopo aver riavviato DDMS e selezionato un processo, è possibile passare alla nuova scheda di allocazione nativa e popolarla con un elenco di allocazioni. Ciò è particolarmente utile per il debug delle perdite di memoria.