Linux 内核 - printk 到一个文件

Linux kernel - printk to a file

我正在调试我的系统调用,我发现 dmesg 打印了很多行,这让我无法看到我的全部 printk

是否可以printk到一个文件?

printk()printf() 之间的主要区别在于前者指定日志级别的能力。内核使用日志级别来决定是否将消息打印到控制台。内核在控制台上显示日志级别低于指定值的所有消息。

在标准 Linux 系统上,来自日志缓冲区的消息通过 syslogd 到达 /var/log/messages。

否则您可以检查您的 syslogd 配置以查看它们的去向。

如果您根本没有 syslogd 而有 systemd,您可能可以通过 journalctl -k -f

找到您的消息

使用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 并查看 "Using trace_printk()"

部分