使用pr_debug("blah\n")时,dmesg的输出中不会显示消息。我将/proc/sys/kernel/printk设置为8 4 1 7。pr_alert消息显示正常。有什么想法吗?
发布于 2016-05-10 18:13:15
您需要定义DEBUG 宏才能实际打印make pr_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都将实际打印信息。
有关动态调试的更多信息,请参见documentation。
发布于 2016-05-15 04:50:42
如果要插入模块,请使用选项,例如insmod hello.ko dyndbg=+p。请参阅内核树中的Documentation/dynamic-debug-howto.txt。
您可能还需要CONFIG_DEBUG_KERNEL=y
https://stackoverflow.com/questions/37131740
复制相似问题