프로젝트 디버깅

네이티브 충돌 디버깅

네이티브 크래시 덤프나 Tombstone을 이해하는 데 어려움을 겪고 있다면 유용한 소개인 네이티브 Android 플랫폼 코드 디버깅을 읽어보세요.

일반적인 충돌 유형의 전체 카탈로그와 조사 방법에 관한 자세한 내용은 네이티브 충돌 진단을 참조하세요.

ndk-stack 도구를 사용하면 충돌을 기호화할 수 있으며 ndk-gdb를 사용하면 명령줄에서 gdb를 연결할 수 있지만, 일반 앱 디버깅 문서에 설명된 Android 스튜디오의 내장 lldb 지원 기능을 사용하는 것이 더 나을 수 있습니다.

네이티브 메모리 문제 디버깅

Address Sanitizer(HWASan/ASan)

HWASanASan은 Valgrind와 비슷하지만 Android에서 훨씬 빠르고 더 나은 지원을 받을 수 있습니다.

이는 Android에서 메모리 오류를 디버깅하는 가장 좋은 옵션입니다.

Malloc 디버그

네이티브 메모리 문제를 디버깅하기 위한 C 라이브러리의 내장 옵션에 관한 자세한 설명은 Malloc 디버그libc 콜백을 사용한 네이티브 메모리 추적을 참조하세요.

Malloc 후크

나만의 도구를 빌드하려는 경우 Android의 libc에서도 프로그램을 실행하는 동안 발생하는 모든 할당/자유 호출의 가로채기를 지원합니다. 사용법 안내는 malloc_hooks 문서를 참조하세요.

Malloc 통계

Android에서는 <malloc.h>에 대한 mallinfo(3)malloc_info(3) 확장 프로그램을 지원합니다.

malloc_info 기능은 Android 6.0(Marshmallow) 이상에서 사용할 수 있으며 이 기능의 XML 스키마는 Bionic의 malloc.h 헤더에 문서화되어 있습니다.

프로파일링

네이티브 코드의 CPU 프로파일링에 Simpleperf를 사용할 수 있습니다.