调试

Linux 内核提供了许多机制来诊断问题,包括跟踪BPF分析。这些技术中的大多数都在通用内核映像 (GKI) 二进制内核中可用。在开发产品时,有更多的工具被集成到开发或集成过程中,其中一些需要不属于 GKI 的内核特性。与大多数 GKI 功能一样,我们鼓励您与上游维护者合作,将这些功能添加到 Linux。

供应商模块中的下游调试功能

调试功能的范围与其他类型的功能类似,并且必须遵循与Android 特定补丁中所述相同的流程。

侵入式下游调试功能

一些有用的调试功能需要在 GKI 中禁用的特殊配置选项,因此需要特殊的内核构建。由于性能损失或不适合生产使用,这些功能可能会被禁用,但对于调试某些类型的问题是必不可少的。此类工具的示例包括清理程序(KASAN、UBSAN)、 debugfs和其他合作伙伴特定的功能和工具。

由您决定如何管理影响内核模块接口 (KMI) 的特殊启用调试的内核。一种常见的做法是进行内部调试构建并将生成的工件交付给内部客户或下游开发合作伙伴。我们建议继续将此类功能隔离到模块中,因为 GKI 内核无法接受特定于合作伙伴的调试功能,超出了Android 特定补丁中描述的准则。