Linux 内核开发人员调试建议

通用指南

特定子系统指南

通用调试建议

根据问题,可以使用不同的工具集来追踪问题,甚至首先判断是否存在问题。

第一步,您必须弄清楚要调试的是哪种类型的问题。根据答案,您的方法论和工具选择可能会有所不同。

我是否需要有限权限调试?

您是否对机器的访问权限有限,或者无法停止正在运行的执行?

在这种情况下,您的调试能力取决于所提供发行版内核的内置调试支持。用户空间调试建议提供了针对这种情况的一系列可能调试工具的简要概述。在大多数情况下,您可以通过查看 /boot 目录中的配置文件来检查内核的功能。

我是否拥有系统的 root 权限?

您是否可以轻松替换有问题的模块或安装新内核?

在这种情况下,您可用的工具范围要大得多,您可以在驱动开发调试建议中找到这些工具。

时间是影响因素吗?

重要的是要了解您要调试的问题是持续出现(即给定一组输入,您总是得到相同的不正确输出),还是不持续出现。如果问题不持续出现,那么一些时间因素可能在起作用。如果在代码中插入延迟会改变行为,那么很可能时间是一个影响因素。

当时间确实改变代码执行结果时,使用简单的printk()进行调试可能无效,一个类似的替代方法是使用trace_printk(),它将调试消息记录到跟踪文件而不是内核日志。

版权所有 ©2024 : Collabora