Cómo depurar tu proyecto

Cómo depurar fallas por errores en código nativo

Si tienes problemas para comprender una tombstone o un volcado de fallas por errores en código nativo, consulta Cómo depurar código nativo en la plataforma de Android, que es una buena introducción.

Para ver un catálogo más completo de los tipos de fallas comunes y cómo investigarlos, consulta Cómo diagnosticar fallas por errores en código nativo.

La herramienta ndk-stack puede ayudarte a simbolizar las fallas. Puedes depurarlas en Android Studio como se describe en la documentación general Cómo depurar tu app. Si prefieres usar la línea de comandos, ndk-gdb te permite adjuntar gdb o lldb desde tu shell.

Cómo depurar problemas con la memoria nativa

Address Sanitizer (HWASan/ASan)

HWAddress Sanitizer (HWASan) y Address Sanitizer (ASan) son similares a Valgrind, aunque considerablemente más rápidos y con mejor compatibilidad en Android.

Son la opción más conveniente para depurar errores de memoria en Android.

Depuración de malloc

Si quieres obtener una descripción completa de las opciones integradas en la biblioteca C para depurar problemas de la memoria nativa, consulta Depuración de malloc y Cómo realizar un seguimiento de la memoria nativa usando devoluciones de llamadas de libc.

Hooks malloc

Si quieres compilar tus propias herramientas, libc de Android también admite la interceptación de todas las llamadas gratuitas o de asignación que ocurren durante la ejecución del programa. Consulta la documentación sobre malloc_hooks para obtener instrucciones de uso.

Estadísticas de malloc

Android admite las extensiones mallinfo(3) y malloc_info(3) para <malloc.h>.

La función malloc_info está disponible en Android 6.0 (Marshmallow) y versiones posteriores, y su esquema XML se documenta en el encabezado malloc.h de Bionic.

Cómo generar perfiles

Para generar perfiles de CPU de código nativo, puedes usar Simpleperf.