LLDB/C++ 디버깅의 커널 개선사항

Android 8.0 버전에는 개발자가 디버깅 환경을 개선하여 더 나은 애플리케이션을 만들 수 있는 커널 개선사항이 포함되어 있습니다.

arm64 Android 커널은 4/8바이트로 정렬되지 않은 메모리 주소에 대해 watchpoint 설정을 지원하고 이러한 주소에 대한 모든 액세스를 보고합니다.

구현

이 기능은 모든 ARM 64비트 기기에서 실행됩니다. 32비트 하드웨어/커널에 대한 관련 지원을 추가하는 것은 선택 사항입니다. 필요한 모든 커널 수정 작업이 이미 수행되었습니다.

이 기능은 4.4 이상의 일반 커널에 포함되어 있습니다. 이 기능이 아직 포함되지 않은 커널에 이 기능을 추가하려면 커널 빌드에 필요한 CL을 선택하세요. 커널 코드베이스가 시간이 지남에 따라 변경되어 패치를 약간 조정해야 했기 때문에 커널의 기반이 되는 버전에 따라 패치 세트를 선택합니다.

  • 분기 android-4.4:
  • 분기 android-4.9:

    이 기능은 디버거 작성을 지원하기 위해 ptrace API의 확장을 구현합니다.

    유효성 검사

    업스트림 저장소에 커널 자동 테스트가 있으며, CTS 테스트가 추가되어 새 커널 API를 실행합니다.

    https://android.googlesource.com/platform/bionic/+/master/tests/sys_ptrace_test.cpp