33得票2回答
printk和pr_info的区别

“printk”和“pr_info”函数有什么确切的区别?在什么情况下,我该选择其中之一?

22得票7回答
打印输出的结果在内核中去哪了?

我正在调试一个Linux驱动程序(特别是Ubuntu server 9.04),代码中有几个printf语句。 我应该在哪里查看这些语句的输出? 编辑1:我的目标是使用proc文件系统编写内核。打印代码如下:static int proc_fractel_config_write(stru...

20得票1回答
dmesg和/var/log/kern.log之间的区别是什么?

我正在修改kvm模块,并在内核代码中添加了printk语句。运行虚拟机后,printk会给我提供有关客户端操作系统的故障地址和其他信息。 我需要从这些信息中生成统计数据。当我使用dmesg时,我只能看到在内核空间中的故障地址,即它们的地址高于0XC0000000。(当VMEXIT发生时,即从...

16得票2回答
在中断处理程序中使用printk,这真的很糟糕吗?

众所周知,中断处理程序应该尽可能地短小精悍。在中断处理程序中添加像 printk 这样的调试函数是不应该做的事情。 实际上,在我编写的基于中断驱动的字符设备的 Linux 内核进行调试时,我曾经尝试过这样做,结果它破坏了驱动程序的定时。 我的问题是,为什么会这样呢?printk 函数是有缓...

13得票1回答
printk中针对loff_t类型的格式说明符是什么?

我正在为学校作业开发一款Linux字符设备驱动程序,但不确定如何打印传递给我的读取函数的类型为loff_t的*ppos。 我知道必须在内核中使用printk而不是标准库printf,但似乎无法找到正确的格式说明符。

13得票2回答
Linux内核调试输出?

有没有更好的方法来调试 Linux 内核中的打印输出? 现在,代码里到处都是这样的打印语句:printk(KERN_DBG "%s:%d - %s() <message>", __FILE__, __LINE__, __FUNCTION__ ); 这不是很干净的方式。 应该有...

12得票2回答
在Linux内核中如何将一条消息打印在单行中

我正在内核中编写一个简单的enque/deque程序。我想在内核中打印消息,这是我得到的:[18594.595747] Enqueue 3 [18594.595748] queue : [18594.595751] 2 [18594.595751] 1 [18594.595752]...

12得票1回答
扩大Linux内核日志缓冲区至超过2M

我正在收集一些Linux内核活动的信息。我在内核源代码中放置了多个printk语句,并希望在常规内核活动期间监视这些语句。不幸的是,我已经意识到内核日志缓冲区大小(CONFIG_LOG_BUF_SHIFT)不能超过2^21,这基本上相当于2M条目。 是否有其他方法记录超过2M的内核消息?

8得票3回答
内核模块:如何获取控制台输出?

我正在编写一个内核模块,当使用insmod module.ko加载时,希望能够在控制台输出一些信息。 我尝试使用 printk(KERN_EMERG "test kernel emergency\n"); 但是我的控制台上没有任何内容。但是在 dmesg 中可以看到。 额外信息: 我正...

7得票1回答
为什么printk在内核日志(dmesg)中没有打印消息?

我编写了一个小内核模块代码,如下所示, 我正在Ubuntu 14.04中进行测试。 #include <linux/module.h> #include <linux/version.h> #include <linux/kernel.h> #inclu...