Depurar o projeto

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, e ndk-gdb permite anexar gdb a partir da linha de comando. No entanto, provavelmente seria melhor usar a compatibilidade integrada com lldb do Android Studio descrita na documentação geral Depurar seu app.

Depurar problemas de memória nativa

Limpador de endereços (HWASan/ASan)

O HWASan e o ASan 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.