繁体   English   中英

dmesg日志中未显示printk消息

[英]printk messages not showing up in dmesg log

我正在开发一个简单的驱动程序来娱乐,并且尝试使用printk消息对其进行调试。 似乎dmesg不会显示最后一个printk消息,并且使它显示最后一条消息的唯一方法是执行另一个printk ,而这又会被dmesg吞没。

一些示例说明:在模块的init函数中,我打印以下语句:

printk(KERN_INFO "%s loaded with major: %u, minor: 0", ...);

之后insmod引导后,荷兰国际集团的第一次,我看到一个“污点内核”消息dmesg ,但我不能看到我打印的信息。

然后,我运行以下命令:

cat /dev/mymodule

这将调用我的open函数,该函数将打印:

printk(KERN_DEBUG "%s opened", ...);

然后调用我的read函数,它输出:

printk(KERN_DEBUG "%s reading", current->comm);

然后去睡觉 运行dmesg (读取功能处于睡眠状态),我突然可以看到模块初始化消息,也可以看到“ cat打开”消息,但是缺少“ cat reading”消息。

用ctrl + c终止cat会产生两个打印结果:“睡眠中断”,然后“释放猫”。 运行dmesg显示“睡眠中断”消息,但是缺少“猫被释放”消息,依此类推。

有谁知道可能是什么问题?

您应该在每条printk消息的末尾添加\\ n,以免丢失dmesg中的任何日志。 这样可以解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM