Linux内核动态输出调试

描述

动态输出可以动态选择打开某个内核子系统的输出,可以有选择性地打开某些模块的输出。

配置内核编译选项要使用动态输出,必须在配置内核时打开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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分