动态输出可以动态选择打开某个内核子系统的输出,可以有选择性地打开某些模块的输出。
配置内核编译选项要使用动态输出,必须在配置内核时打开CONFIG_DYNAMIC_DEBUG宏。内核代码里使用大量pr_debug()/dev_dbg()函数来输出信息,这些就使用了动态输出。
需要打开的内核配置选项:
CONFIG_DEBUG_FS=yCONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_DEBUG是配置动态输出,它依赖于CONFIG_DEBUG_FS,而CONFIG_DEBUG_FS是debugfs文件系统。
打开内核配置后,我们还需要挂载debugfs文件系统。
debugfs文件系统挂载动态输出在debugfs文件系统中有一个control文件节点,这个文件节点记录了系统中所有使用动态输出技术的文件名路径、输出所在的行号、模块名字和要输出的语句。
debugfs默认会挂载到/sys/kernel/debug,如果没有挂载,可以执行以下命令挂载:
mount -t debugfs none /sys/kernel/debug/
挂载debugfs文件系统后,可以查看control节点内容:
cat /sys/kernel/debug/dynamic_debug/control
-
内核
+关注
关注
3文章
1400浏览量
40719 -
Linux
+关注
关注
87文章
11387浏览量
211717 -
子系统
+关注
关注
0文章
111浏览量
12562
发布评论请先 登录
相关推荐
Linux内核学习笔记:printk调试
实例分析LINUX系统的静/动态集成调试模式

如何配置和使用Linux内核printk功能
使用动态输出打印内核的DEBUG信息
Linux内核调试的方式以及工具集锦
Linux内核基础:动态输出使用

评论