用于 LLDB/C++ 调试的内核增强功能

Android 8.0 版本包含一些内核增强功能,可通过改善开发者的调试体验来帮助开发者打造出更好的应用。

arm64 Android 内核支持在非 4/8 字节对齐的存储器地址上设置观察点,并报告对这些地址的所有访问。

实现

该功能可在任何 ARM 64 位设备上运行。可以选择添加对 32 位硬件/内核的支持。所有必要的内核修改都已完成。

4.4 及更高版本的通用内核包含此功能。要将此功能添加到尚未包含它的内核中,请择优挑选必要的 CL 并将其加入到您的内核版本中。由于内核代码库会不断发展完善,补丁程序也会随之进行一些必要的调整,因此请根据您的内核所基于的版本选择相应的补丁程序集:

  • 分支 android-4.4:
  • 分支 android-4.9:

    此功能实现了 ptrace API 扩展,可支持编写调试程序。

    验证

    上游代码库中有一个内核自测(即 CTS 测试),并且有用于测试新内核 API 而添加的 CTS 测试:

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