我正在调试linux (特别是ubuntu服务器9.04)的驱动程序,代码中有几个printf语句。
在哪里可以查看这些语句的输出?
EDIT1:我想要做的是使用proc文件系统写入内核。打印代码为
static int proc_fractel_config_write(struct file *file, const char *argbuf, unsigned long count, void *data)
{
printk(KERN_DEBUG "writing fractel config\n");
...在kern.log中,当我尝试覆盖文件/proc/net/madwifi/ath1/fractel(当然,时间不同)时,我会看到以下消息。
[ 8671.924873] proc write
[ 8671.924919] 有什么解释吗?
发布于 2010-12-23 20:00:33
这取决于发行版,但很多都使用klogd(8)从内核获取消息,并将它们记录到一个文件(有时是/var/log/dmesg或/var/log/kernel)或通过syslog(3)记录到系统日志中。在后一种情况下,日志条目的结束位置将取决于syslogd(8)的配置。
关于dmesg命令需要注意的一点是:内核消息存储在循环缓冲区中,因此大量输出将被覆盖。
发布于 2010-12-24 01:16:28
很多时候,会过滤KERN_DEBUG级别的消息,您需要显式地提高日志记录级别。您可以通过检查/proc/sys/kernel/printk来查看系统默认值。例如,在我的系统上:
# cat /proc/sys/kernel/printk
4 4 1 7第一个数字显示控制台日志级别为KERN_WARNING (有关更多信息,请参见proc(5)手册页)。这意味着将从控制台过滤KERN_NOTICE、KERN_INFO和KERN_DEBUG消息。要提高日志记录级别或详细程度,请使用dmesg
$ sudo dmesg -n 7
$ cat /proc/sys/kernel/printk
7 4 1 7在这里,将级别设置为7 (KERN_DEBUG)将允许所有级别的消息出现在控制台上。要自动执行此操作,请将loglevel=N添加到内核引导参数中,其中N是您希望转到控制台或ignore_loglevel以将所有内核消息打印到控制台的日志级别。
发布于 2010-12-23 19:52:22
您将使用命令dmesg获得输出
https://stackoverflow.com/questions/4518420
复制相似问题