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 para obtener una buena introducción.

Para ver un catálogo completo de los tipos de fallas más 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, y ndk-gdb te permite adjuntar gdb desde la línea de comandos. Sin embargo, te recomendamos que uses la compatibilidad con lldb integrada en Android Studio que se describe en la documentación general de Cómo depurar tu app.

Cómo depurar problemas de la memoria nativa

Address Sanitizer (HWASan/ASan)

HWASan y 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, la biblioteca estándar de C 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.