那如果不开启CONFIG_DYNAMIC_DEBUG,将不会产生/sys/kernel/debug/dynamic_debug目录, 是不能进行动态打印的。 1.2.1 开启dynamic debug echo"module xxx_mipi_rx +p"> /sys/kernel/debug/dynamic_debug/control echo"file xxx_vip_cif.c +p">/
卸载模块后,/sys/kernel/debug/dynamic_debug/control 也没有pr_debug的动态调试信息。 测试时,可以加载pr_debug驱动模块后,设置/sys/kernel/debug/dynamic_debug/control 信息,再去卸载pr_debug驱动模块,此时卸载时没打印。 echo'module pr_debug -p'> /sys/kernel/debug/dynamic_debug/control 学习参考: Linux...
dynamic debug 的使用 pr_debug pr_devel 总结 前言 动态输出是内核子系统最喜欢的输出手段之一。在系统运行时,可以由系统维护者动态打开和关闭指定的printk()输出,也可以有选择地打开某些模块的输出,而printk 打印是全局的,只能设置输出等级,而且使用 printk 每次都要重新编译内核,很不方便。而动态输出可以在不需要...
要使用动态打印,必须在内核配置时打开 CONFIG_DYNAMIC_DEBUG 宏。 CONFIG_DEBUG_FS=yCONFIG_DYNAMIC_DEBUG=y 挂载debugfs CONFIG_DYNAMIC_DEBUG 是配置动态输出,它依赖于 CONFIG_DEBUG_FS,而 CONFIG_DEBUG_FS 是debugfs 文件系统。debugfs 默认会挂载到 /sys/kernel/debug,如果没有挂载,可以执行以下命令挂载: $ mou...
CONFIG_DYNAMIC_DEBUG是配置动态输出,它依赖于CONFIG_DEBUG_FS,而CONFIG_DEBUG_FS是debugfs文件系统。 打开内核配置后,我们还需要挂载debugfs文件系统。 debugfs文件系统挂载 动态输出在debugfs文件系统中有一个control文件节点,这个文件节点记录了系统中所有使用动态输出技术的文件名路径、输出所在的行号、模块名字和要输出的...
首先内核选项CONFIG_DYNAMIC_DEBUG应该被设置。所有通过pr_debug()/dev_debug()打印的信息都可以动态地显示或不显示。 可以通过简单的查询语句来筛选需要显示的信息。 - 源文件名 - 函数名 - 行号(包括指定范围的行号) - 模块名 - 格式化字符串 将要打印信息的格式写入/dynamic_debug/control中。
当编译选项CONFIG_DYNAMIC_DEBUG打开的时候,在编译阶段,kernel会把所有使用dev_dbg()的信息记录在一个table中,这些信息我们可以从/mnt/dbg/dynamic_debug/control解析出来: 代码语言:javascript 复制 # cat/mnt/dbg/dynamic_debug/control...drivers/alidrivers/modules/alidsc/ca_dsc_core.c:800[alidsc]ca_dsc_...
Linux动态调试是Linux系统上一个非常有用的调试工具,通过动态调试技术可以实时获取程序运行时的信息,进行错误定位和性能优化。 红帽公司作为Linux领域的领导者,也推出了自己的动态调试工具——Red Hat Dynamic Debug(简称DD)。DD是一款高效、强大的调试工具,能够帮助开发人员快速定位和解决软件中的各种问题。
首先内核选项CONFIG_DYNAMIC_DEBUG应该被设置。所有通过pr_debug()/dev_debug()打印的信息都可以动态的显示或不显示。 可以通过简单的查询语句来筛选需要显示的信息。 -源文件名 -函数名 -行号(包括指定范围的行号) -模块名 -格式化字符串 将要打印信息的格式写入<debugfs>/dynamic_debug/control中。
打开内核动态调试开关,make menuconfig选中CONFIG_DYNAMIC_DEBUG以及CONFIG_DEBUG_FS Linux启动后,使用命令行挂载上dbgfs 复制 mkdir /mnt/dbgmount -t debugfs none /mnt/dbg 1. 2. 使用下面方式控制你想输出dev_dbg()信息 1.控制某个文件所有dev_dbg(),echo -n "file xxx.c +p" > /mnt/dbg/dynamic_d...