Depurar falhas nativas
Se você está com dificuldades para entender um despejo de falha nativa ou Tombstone, a página Depurar códigos nativos da Plataforma Android pode ser uma boa introdução.
Para ver um catálogo mais completo de tipos comuns de falhas e aprender a analisá-las, consulte Diagnosticar falhas nativas.
A ferramenta ndk-stack pode ajudar a simbolizar as falhas.
Você pode depurar falhas no Android Studio, conforme descrito na documentação
geral Depurar seu app. Caso você prefira usar a
linha de comando, o ndk-gdb permite anexar gdb
ou
lldb
usando o shell.
Depurar problemas de memória nativa
Limpador de endereços (HWASan/ASan)
O Limpador de endereços HW (HWASan, na sigla em inglês) e o Limpador de endereços (ASan, na sigla em inglês) são semelhantes ao Valgrind, mas significativamente mais rápidos e com compatibilidade muito melhor com o Android.
Essa é sua melhor opção para depurar erros de memória no Android.
Depuração Malloc
Consulte Depuração Malloc e Rastreamento de memória nativa usando callbacks de libc (links em inglês) para ver uma descrição completa das opções integradas da biblioteca C para depurar problemas de memória nativa.
Hooks Malloc
Se você quiser criar as próprias ferramentas, a libc do Android também é compatível com a interceptação de todas as chamadas de alocação/livres que acontecem durante a execução do programa. Consulte a documentação do malloc_hooks (em inglês) para ver instruções de uso.
Estatísticas Malloc
O Android é compatível com as
extensões mallinfo(3)
e
malloc_info(3)
para <malloc.h>
(links em inglês).
A funcionalidade malloc_info
está disponível no Android 6.0 (Marshmallow) e
versões mais recentes. O esquema XML dela está documentado no cabeçalho
malloc.h
da Bionic (link em inglês).
Caracterização de perfil
Para caracterizar o perfil de CPU do código nativo, use o Simpleperf.