我正在调试我的系统调用,我发现dmesg打印了很多行,这让我无法看到我的所有printk
。
文件可以printk
吗?
答案 0 :(得分:0)
printk()和 printf()之间的主要区别在于前者指定日志级别的能力。内核使用loglevel来决定是否将消息打印到控制台。内核在控制台上显示loglevel低于指定值的所有消息。
在标准Linux系统上,来自日志缓冲区的消息将通过syslogd传递到/ var / log / messages。
否则,您可以检查syslogd配置以查看它们的去向。
如果您根本没有syslogd并且已经系统化了,那么您可以找到journalctl -k -f
答案 1 :(得分:0)
使用trace_printk()
代替printk()
你的照片应该是ftrace缓冲区。
$ cd /sys/kernel/debug/tracing
$ cat trace
请参阅http://june-takeout.blogspot.dk/2010/01/debugging-kernel-using-ftrace-part-1.html,并参阅“使用trace_printk()”
部分