使用pr_debug("blah\n")
消息时,消息不会显示在dmesg
输出中。我已经将/proc/sys/kernel/printk
设置为8 4 1 7。但是pr_alert
消息可以正常显示。请问有什么想法吗?
若要使pr_debug
实际输出内容,您需要定义DEBUG
宏。
例如,如果添加以下代码行:
ccflags-y := -DDEBUG=1
将以下文本添加到模块的Makefile
中,然后由该模块的任何源文件调用的pr_debug
实际上会打印信息。
或者,如果未定义DEBUG
宏但内核构建时启用了选项CONFIG_DYNAMIC_DEBUG
,则可以动态控制哪个pr_debug
调用实际上应该打印。
例如,在以root身份执行以下操作之后:
echo 'module my_module' > /sys/kernel/debug/dynamic_debug/control
所有从模块my_module
调用的pr_debug
都会实际打印信息。
有关动态调试的更多信息,请参见文档。
insmod hello.ko dyndbg=+p
。请参阅内核树中的 Documentation/dynamic-debug-howto.txt
。CONFIG_DEBUG_KERNEL=y
。