O Google está comprometido em promover a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Depurando o uso da memória nativa

Sanitizer de endereço: HWASan / ASan

Os desenvolvedores da plataforma Android usam o HWAddressSanitizer (HWASan) para encontrar erros de memória no C / C ++.

Você pode fazer o flash de imagens pré-construídas do HWASan para dispositivos Pixel suportados em ci.android.com ( instruções detalhadas de configuração ).

Desde o Android 8.0 (Oreo), também é possível usar o ASan para depurar aplicativos em dispositivos de produção não-rooteados. Você pode encontrar instruções no wiki do ASan .

Heapprofd

O Android 10 suporta heapprofd, um perfil de heap de amostragem de baixo custo adicional. O heapprofd permite atribuir o uso da memória nativa às pilhas de chamadas em seu programa. Consulte heapprofd - Android Heap Profiler no site de documentação do Perfetto para obter mais informações.

Depuração do Malloc

Consulte Malloc Debug e Native Memory Tracking usando libc Callbacks para obter uma descrição completa das opções de depuração disponíveis para problemas de memória nativa.

libmemunreachable

O libmemunreachable do Android é um detector de vazamento de memória nativa com zero sobrecarga. Ele usa uma passagem imprecisa de coletor de lixo de marcação e varredura sobre toda a memória nativa, relatando quaisquer blocos inacessíveis como vazamentos. Consulte a documentação libmemunreachable para obter instruções de uso.

Ganchos Malloc

Se você deseja criar suas próprias ferramentas, a libc do Android também suporta a interceptação de todas as chamadas gratuitas / de alocação que ocorrem durante a execução do programa. Consulte a documentação do malloc_hooks para obter instruções de uso.

Estatísticas Malloc

O Android suporta as mallinfo(3) e malloc_info(3) para <malloc.h> . A função malloc_info está disponível no Android 6.0 (Marshmallow) e superior e seu esquema XML está documentado no <malloc.h> da Bionic.

Servidor de Monitor de Depuração Dalvik

Você também pode usar o Dalvik Debug Monitor Server (DDMS) para obter uma visualização gráfica da saída do Malloc Debug.

Para usar o DDMS, primeiro ative sua interface de usuário da memória nativa:

  1. Abra ~/.android/ddms.cfg
  2. Adicione a linha: native=true

Ao reiniciar o DDMS e selecionar um processo, você pode alternar para a nova guia de alocação nativa e preenchê-la com uma lista de alocações. Isso é especialmente útil para depurar vazamentos de memória.