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

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

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

实现

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

当前的 3.10、3.18、4.4 和 4.9 内核分支包含此功能。 要将此功能添加到尚未包含它的内核中,请择优挑选必要的 CL 并加入到您的内核版本中。 [Jack]kernel build?由于内核代码库会因随时间不断发展,补丁程序也会随之进行一些调整,因此请根据您的内核所基于的版本选择相应的补丁程序集:

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

验证

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

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