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()"
部分
我正在调试我的系统调用,我发现 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()"
部分