Google se compromete a promover la equidad racial para las comunidades negras. Ver cómo.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Depuración del uso de memoria nativa

Desinfectante de direcciones: HWASan / ASan

Los desarrolladores de la plataforma Android usan HWAddressSanitizer (HWASan) para encontrar errores de memoria en C / C ++.

Puede flashear imágenes HWASan preconstruidas a dispositivos Pixel compatibles desde ci.android.com ( instrucciones de configuración detalladas ).

Desde Android 8.0 (Oreo) también es posible usar ASan para depurar aplicaciones en dispositivos de producción no rooteados. Puede encontrar instrucciones en el wiki de ASan .

Heapprofd

Android 10 admite heapprofd, un generador de perfiles de almacenamiento dinámico de muestreo de bajo costo. heapprofd le permite atribuir el uso de memoria nativa a las pilas de llamadas en su programa. Consulte heapprofd - Android Heap Profiler en el sitio de documentación de Perfetto para obtener más información.

Depuración de Malloc

Vea Malloc Debug y Native Memory Tracking usando libc Callbacks para obtener una descripción detallada de las opciones de depuración disponibles para problemas de memoria nativa.

libmemunreachable

El libmemunreachable de Android es un detector de pérdidas de memoria nativa sin sobrecarga. Utiliza un paso impreciso del recolector de basura de marcado y barrido sobre toda la memoria nativa, informando cualquier bloque inalcanzable como fugas. Consulte la documentación de libmemunreachable para obtener instrucciones de uso.

Ganchos Malloc

Si desea crear sus propias herramientas, la libc de Android también admite la intercepción de todas las asignaciones / llamadas gratuitas que ocurren durante la ejecución del programa. Consulte la documentación de malloc_hooks para obtener instrucciones de uso.

Estadísticas de Malloc

Android admite las mallinfo(3) y malloc_info(3) a <malloc.h> . La función malloc_info está disponible en Android 6.0 (Marshmallow) y superior y su esquema XML está documentado en <malloc.h> .

Dalvik Debug Monitor Server

También puede usar el Dalvik Debug Monitor Server (DDMS) para obtener una vista gráfica de la salida de Malloc Debug.

Para usar DDMS, primero encienda su IU de memoria nativa:

  1. Abra ~/.android/ddms.cfg
  2. Agregue la línea: native=true

Al reiniciar DDMS y seleccionar un proceso, puede cambiar a la nueva pestaña de asignación nativa y completarla con una lista de asignaciones. Esto es especialmente útil para depurar fugas de memoria.