printk相关内容

Linux内核调试打印输出?

是否有更好的方法在 Linux 内核中调试打印输出? 现在乱丢代码: printk(KERN_DBG "%s:%d - %s() ", __FILE__, __LINE__, __FUNCTION__ ); 这不是很干净. 应该有一种方法可以使整行 #ifdef: 以某种不错的方式进行编辑. 解决方案 使用 /* 在文件的顶部,在任何包含之前 */#define pr_f ..
发布时间:2022-01-04 22:46:12 其他开发

中断处理程序中的printk,真的有那么糟糕吗?

每个人都知道中断处理程序应该尽可能短.并且添加诸如 printk 之类的函数用于在中断处理程序中进行调试是不应该做的.其实我之前在调试linux内核的时候,我写的一个中断驱动的char设备的时候试过,它破坏了驱动程序的时序. 我的问题是,为什么会发生这种情况?printk 函数被缓冲了!这意味着,据我所知,数据被插入到队列中,并且稍后被处理,很可能是在中断处理程序完成之后. 那为什么不 ..
发布时间:2022-01-04 22:44:10 其他开发

内核中的打印输出去哪里了?

我正在调试一个linux驱动(特别是ubuntu server 9.04),代码中有几个printf语句. 在哪里可以查看这些语句的输出? EDIT1:我想要做的是使用 proc 文件系统写入内核.打印代码是 static int proc_fractel_config_write(struct file *file, const char *argbuf, unsigned lon ..
发布时间:2022-01-04 22:25:44 服务器开发

如何在控制台中显示printk()消息?

printk()打印的信息只能在 Alt + Ctrl + F1 〜 F7 下看到kbd>控制台.这些控制台非常难以调试,因为它们无法回滚.我正在使用KDE桌面环境和控制台终端,如何将printk()消息重定向到控制台? 解决方案 printk 是 printk(“日志级别",“消息",“参数"); 内核在文件printk.h中定义了8个日志级别. #define KERN_E ..
发布时间:2021-05-28 19:19:14 服务器开发

扩大Linux内核日志缓冲区超过2M

我正在收集某种Linux内核活动.我在内核源代码中放置了多个printk语句,并希望在常规内核活动期间对其进行监视.不幸的是,我意识到内核日志缓冲区的大小(CONFIG_LOG_BUF_SHIFT)不能大于2 ^ 21,这基本上等于2M条目. 还有其他方法可以记录超过2M的内核消息吗? 解决方案 您可以在/boot/grub/grub.conf中将内核日志缓冲区设置为log_buf_ ..
发布时间:2021-02-14 21:07:02 其他开发

dmesg和/var/log/kern.log之间的区别

我正在修改kvm模块,并在内核代码中添加了printk语句.运行虚拟机后,printk向我提供了错误的地址以及有关来宾OS的其他信息. 我需要根据此信息生成统计信息.当我使用dmesg时,我只能看到错误的地址 在内核空间中,即它们的地址大于0XC0000000.(当VMEXIT发生时,即我们从来宾模式切换到主机模式时,需要错误地址) 当我在kern.log中看到相同的统计信息时,我还从 ..
发布时间:2020-05-02 03:36:41 其他开发

内核中的打印输出到哪里去了?

我正在调试Linux(特别是ubuntu服务器9.04)的驱动程序,并且代码中有几个printf语句. 在哪里可以查看这些语句的输出? EDIT1:我要执行的操作是使用proc文件系统写入内核. 打印代码是 static int proc_fractel_config_write(struct file *file, const char *argbuf, unsigned lo ..
发布时间:2020-05-01 08:56:58 服务器开发

如何在Konsole中显示printk()消息?

由printk()打印的信息只能在 Alt + Ctrl + F1 〜 F7 下看到kbd>控制台. 这些控制台非常难以调试,因为它们无法回滚.我正在使用KDE桌面环境和控制台终端,如何将printk()消息重定向到控制台? 解决方案 printk 的语法是 printk ("log level" "message", ); 内核在文件printk.h中定义 ..
发布时间:2020-04-25 11:34:00 服务器开发

printk的中断处理程序中,是不是真的那么糟吗?

大家都知道,中断处理程序应该是越短越好。并加入像的printk 功能的中断处理程序中的调试是一件不应该做。 其实,我试了一下,当我的调试。我写中断驱动字符设备Linux内核之前,它破坏了司机的时间。 我的问题,是为什么发生这种情况? 的printk 函数缓冲!这意味着,据我了解,将数据插入到队列中,它被处理后,最有可能中断处理程序结束后。 那么,为什么不工作? 解决方案 的的pri ..
发布时间:2016-08-21 20:21:23 C/C++

Linux的内核调试打印输出?

有没有更好的方法来调试Linux内核打印? 现在乱扔垃圾的code有: 的printk(KERN_DBG“%S:%d个 - %S()<&消息GT;”,__FILE__,__LINE__,__FUNCTION__); 这是不是很干净。 有应该是一种方式,整行是 #IFDEF :在编一些不错的方式。 解决方案 使用 / *在文件的顶部,任何包括之前* / #定义pr_fmt(FMT) ..
发布时间:2016-08-21 20:19:36 C/C++