当使用 pr_debug("blah\n")
时,消息不会出现在 dmesg
的输出中。我将 /proc/sys/kernel/printk
设置为 8 4 1 7。pr_alert
消息显示得很好。有什么想法吗?
最佳答案
您需要定义 DEBUG
宏 才能使 pr_debug
实际打印。
例如,如果添加行
ccflags-y := -DDEBUG=1
进入模块的Makefile
,然后该模块的任何源文件调用的pr_debug
将实际打印信息。
或者,如果未定义 DEBUG
宏,但内核是在启用选项 CONFIG_DYNAMIC_DEBUG
的情况下构建的,您可以动态控制哪个 pr_debug
调用实际上应该打印出来。
例如执行后(从根)
echo 'module my_module' > /sys/kernel/debug/dynamic_debug/control
从模块 my_module
调用的所有 pr_debug
将实际打印信息。
有关动态调试的更多信息,请参阅 documentation .
关于linux - 查看内核 printk 调试消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131740/