Google setzt sich dafür ein, die Rassengerechtigkeit für schwarze Gemeinschaften zu fördern. Siehe wie.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Debuggen der Nutzung des nativen Speichers

Adressdesinfektionsmittel: HWASan / ASan

Entwickler von Android-Plattformen verwenden HWAddressSanitizer (HWASan), um Speicherfehler in C / C ++ zu finden.

Sie können vorgefertigte HWASan-Bilder von ci.android.com auf unterstützte Pixel-Geräte flashen ( detaillierte Anweisungen zur Einrichtung ).

Seit Android 8.0 (Oreo) ist es auch möglich, mit ASan Apps auf nicht gerooteten Produktionsgeräten zu debuggen. Anweisungen finden Sie im ASan-Wiki .

Heapprofd

Android 10 unterstützt heapprofd, einen Sampling-Heap-Profiler mit geringem Overhead. Mit heapprofd können Sie Callstacks in Ihrem Programm die native Speichernutzung zuordnen. Weitere Informationen finden Sie unter heapprofd - Android Heap Profiler auf der Perfetto-Dokumentationsseite .

Malloc-Debug

Eine ausführliche Beschreibung der Debugging-Optionen, die für Probleme mit nativem Speicher verfügbar sind, finden Sie unter Malloc-Debugging und native Speicherverfolgung mit libc- Rückrufen .

libmemunreachable

Android libmemunreachable ist ein nativer Speicherleckdetektor ohne Overhead. Es verwendet einen ungenauen Mark-and-Sweep-Garbage-Collector-Pass über den gesamten nativen Speicher und meldet alle nicht erreichbaren Blöcke als Lecks. Anweisungen zur Verwendung finden Sie in der libmemunreachable-Dokumentation .

Malloc-Haken

Wenn Sie Ihre eigenen Tools erstellen möchten, unterstützt Android libc auch das Abfangen aller Zuweisungen / kostenlosen Aufrufe, die während der Programmausführung auftreten. Anweisungen zur Verwendung finden Sie in der Dokumentation zu malloc_hooks .

Malloc-Statistiken

Android unterstützt die mallinfo(3) und malloc_info(3) für <malloc.h> . Die Funktion malloc_info ist in Android 6.0 (Marshmallow) und höher verfügbar. Das XML-Schema ist in <malloc.h> .

Dalvik Debug Monitor Server

Sie können auch den Dalvik Debug Monitor Server (DDMS) verwenden, um eine grafische Ansicht der Malloc Debug-Ausgabe zu erhalten.

Um DDMS zu verwenden, aktivieren Sie zuerst die native Speicher-Benutzeroberfläche:

  1. Öffnen Sie ~/.android/ddms.cfg
  2. Fügen Sie die Zeile hinzu: native=true

Nach dem Neustart von DDMS und der Auswahl eines Prozesses können Sie zur neuen Registerkarte für die native Zuordnung wechseln und diese mit einer Liste von Zuordnungen füllen. Dies ist besonders nützlich beim Debuggen von Speicherlecks.