CONFIG_DYNAMIC_DEBUG是配置动态输出,它依赖于CONFIG_DEBUG_FS,而CONFIG_DEBUG_FS是 debugfs 文件系统。 CONFIG_DEBUG_FS=yCONFIG_DYNAMIC_DEBUG=y debugfs默认会挂载到/sys/kernel/debug,如果没有挂载,可以执行以下命令挂载 #mount -t debugfs none /sys/ker
那如果不开启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 这两种方式都是开dynamic...
第一种用法,如果定义了CONFIG_DYNAMIC_DEBUG,就使用动态debug机制dynamic_pr_debug(); 第二种用法,如果定义了DEBUG,就使用printk(KERN_DEBUG...) 第三种用法,默认情况下,不打印(所以默认的时候在dmesg中看不到该打印)。 第一种用法: 最简单的打开DEBUG宏的方法是修改Makefile文件,比如我们要打开kernel/drivers/gp...
cat/sys/kernel/debug/dynamic_debug/control 2.5.3 启用调试命令 代码语言:bash AI代码解释 echo'func my_function +p'>/sys/kernel/debug/dynamic_debug/control 更多细节请参考动态debug的内核 https://www.kernel.org/doc/html/v4.14/admin-guide/dynamic-debug-howto.html 3. 结束语 通过有效地使用这些工...
CONFIG_DYNAMIC_DEBUG 是配置动态输出,它依赖于 CONFIG_DEBUG_FS,而 CONFIG_DEBUG_FS 是debugfs 文件系统。debugfs默认会挂载到 /sys/kernel/debug,如果没有挂载,可以执行以下命令挂载: $ mount -t debugfs none /sys/kernel/debug dynamic debug 的使用 这里我讲pr_debug和pr_devel的使用方法 pr_debug pr_debug...
目前在kernel驱动代码中,都不再建议直接使用printk直接添加打印信息,而是使用dev_info,dev_dbg,dev_err之类的函数代替,虽然这些dev_xxx函数的本质还是使用printk打印的,但是相比起printk: 支持打印模块信息、dev信息 支持动态调试(dynamic debug)方式 下面简述下这几个dev_xxx函数的基本使用规则,以及动态调试使用方式。
要使用动态打印,必须在内核配置时打开 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_PREEMPT=yCONFIG_DEBUG_KERNEL=yCONFIG_KLLSYMS=yCONFIG_SPINLOCK_SLEEP=y 引发bug并打印信息 BUG()和BUG_ON() 一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。定义在中: #ifndefHAVE_ARCH_BUG#defineBUG()do{printk("BUG:failure at%s:%d/%s()!",__FILE_...
debugfs默认会挂载到/sys/kernel/debug,如果没有挂载,可以执行以下命令挂载: mount -t debugfs none /sys/kernel/debug/ 挂载debugfs文件系统后,可以查看control节点内容: cat /sys/kernel/debug/dynamic_debug/control
目前在kernel驱动代码中,都不再建议直接使用printk直接添加打印信息,而是使用dev_info,dev_dbg,dev_err之类的函数代替,虽然这些dev_xxx函数的本质还是使用printk打印的,但是相比起printk: 支持打印模块信息、dev信息 支持动态调试(dynamic debug)方式 下面简述下这几个dev_xxx函数的基本使用规则,以及动态调试使用方式。