启用动态调试
debugfs 文件系统允许您通过在运行时启用日志来调试内核。在验证特定场景时,使用 debugfs 文件系统在特定时间启用日志。
默认情况下,动态调试处于禁用状态。要在内核中启用 debugfs,请执行以下操作:
- 启用
CONFIG_DYNAMIC_DEBUG内核配置选项。 - 重新编译并重新烧录构建。
- 要挂载
debugfs文件系统,请运行以下命令:- 通过检查以下路径是否存在来验证是否已启用动态调试:
- 如果该目录存在,请验证已定义的日志:
- 通过检查以下路径是否存在来验证是否已启用动态调试:
- 为需要调试的文件或函数启用调试日志。
例如:
- 要启用
mdp.c文件中的所有debugfs日志,请运行以下命令: - 要启用
mdp.c文件中第 2921 行的日志,请运行以下命令:
- 要启用
- 使用
dmesg命令验证日志,或运行以下命令:有关更多信息,请参阅 Documentation/dynamic-debug-howto.txt。
启用内核调试选项
您可以启用内核配置选项来调试各种问题,例如内存泄漏、锁相关问题和 mutex 问题。要查看可用的内核调试选项,请调用menuconfig。有关内核调试选项的更多信息,请参阅配置内核
以下是一些调试选项:
Kernel hacking
[*] Kernel debugging
[*] Detect Soft Lockups
[ ] Collect scheduler statistics
[*] Debug slab memory allocations
[*] Memory leak debugging
[*] Mutex debugging, deadlock detection
[*] Spinlock debugging
[*] Sleep-inside-spinlock checking
[ ] kobject debugging
[ ] Highmem debugging
[ ] Compile the kernel with debug info
如果启用这些调试选项中的任何一个,内核速度会略微降低。因此,如果您注意到性能有所下降,请禁用内核调试配置选项。

