O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Depuração de uso de memória nativa

Endereço Sanitizer: HWASan / ASan

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

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

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

Heapprofd

O Android 10 é compatível com heapprofd, um gerador de perfil de heap de amostragem de baixa sobrecarga. heapprofd permite atribuir o uso de memória nativa a callstacks em seu programa. Consulte heapprofd - Android Heap Profiler no site de documentação do Perfetto para obter mais informações.

Depuração Malloc

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

libmemunhável

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

Ganchos Malloc

Se você deseja construir suas próprias ferramentas, a libc do Android também suporta a interceptação de todas as chamadas de alocação / gratuitas que acontecem 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) emalloc_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.

Dalvik Debug Monitor Server

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 IU de 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.