Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Debug dell'utilizzo della memoria nativa

Indirizzo disinfettante: HWASan / ASan

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

È possibile eseguire il flashing di immagini HWASan predefinite su dispositivi Pixel supportati da ci.android.com ( istruzioni dettagliate per l'installazione ).

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

Heapprofd

Android 10 supporta heapprofd, un profilatore di heap di campionamento a basso sovraccarico. heapprofd ti consente di attribuire l'utilizzo della memoria nativa ai callstacks nel tuo programma. Vedi heapprofd - Android Heap Profiler sul sito della documentazione Perfetto per ulteriori informazioni.

Debug malloc

Vedi Debug di Malloc e Tracciamento della memoria nativa usando i callback libc per una descrizione completa delle opzioni di debug disponibili per problemi di memoria nativa.

libmemunreachable

Libmemunreachable di Android è un rilevatore di perdite di memoria nativo zero overhead. Utilizza un impreciso passaggio del garbage collector mark-and-sweep su tutta la memoria nativa, segnalando eventuali blocchi non raggiungibili come perdite. Consulta la documentazione di libmemunreachable per le istruzioni d'uso.

Ganci Malloc

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

Statistiche del malloc

Android supporta le mallinfo(3) e malloc_info(3) a <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 vista grafica dell'output di debug di Malloc.

Per utilizzare DDMS, attiva prima l'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 di perdite di memoria.