printk出现问题

邢万里 2016-07-30 01:46:39
环境: ubuntu12.04LTS,内核由3.13.0编译到3.3.8内核。
问题:我在vfs_read和vfs_write调试时,加入了printk语句。尝试了KERN_DEBUG和KERN_INFO两种情况。使用命令#cat /proc/sys/kernel/printk时,显示4 4 1 7。但是我用ctrl+alt+f1~f6后,进去的控制台不断的狂跳我调试的printk语句。我试了在内核编译改变控制台printk的优先级,也试了echo 1 1 1 1 > /proc/sys/kernel/printk的方法,控制台依然疯狂的跳着printk。如果我把printk注释掉,其他情况均是正常(即,我用echo改变printk依然可以正常调试其他部分)。求助,求助
...全文
1024 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nswcfd 2016-08-23
  • 打赏
  • 举报
回复
那就说明是rsyslog的配置问题,它把所有的printk输出全部重新写到console里去了(这个行为跟printk的proc设置无关)
邢万里 2016-08-08
  • 打赏
  • 举报
回复
@猪头三小队长 谢谢你的回复,我也就只能注释掉了,我当时只是想看看系统调用是怎么发生的,一步一步跟踪过去。。。但是有个好玩的就是,我把rsyslog停止,就不再打印刷屏到控制台
猪头三小队长 2016-08-08
  • 打赏
  • 举报
回复
一般说来printk是安全的,但是如果你真的加在每秒钟调用无数次的关键路径上,一样可以把内核打死。这种情况下你说看到的不断输出只是前期输出在屏幕上的延时显示,而你的echo很有可能在这个时候已经没法起作用了。 我还没敢加到vfs那一层,只是在自己的驱动的关键路径里多加些打印,就已经可以让内核不响应,最终断电重启了。
zy1306 2016-08-08
  • 打赏
  • 举报
回复
1.cat命令不停读; 2.cat进到内核里会调用vfs_read; 3.vfs_read里有printk输出。 自己想吧
邢万里 2016-08-07
  • 打赏
  • 举报
回复
@网络人VS灰鸽子 这个在内核中大小写不区分的
邢万里 2016-08-07
  • 打赏
  • 举报
回复
@网络人VS灰鸽子 我并没有说在Windows,我是说xWindows是指桌面环境下的。我用的是字符控制台不是xwindows情况。程序我只加了一句话,printk(KERN_DEBUG "[%s]we are here!", __func__); 所以就奇怪了。。。我没用动什么配置、其他代码的的。。。
邢万里 2016-08-06
  • 打赏
  • 举报
回复
@nswcfd 我修改了printk之后,还是疯狂跳出语句 vfs_read we are here! 怎么办
邢万里 2016-08-06
  • 打赏
  • 举报
回复
@qq_21792169 我是进入的字符控制台,不是x Windows下的,正常情况只要改变控制台printk打印的级别就可以显示。我在vfs_read()函数里面就加了一句话printk(KERN_DEBUG "[%s]we are here!", __func__);。表示很奇怪哦。
nswcfd 2016-08-05
  • 打赏
  • 举报
回复
打印太多了,修改printk参数只会影响【后续】的printk,不影响已经发生的printk

4,437

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧