linux 内核常用的debug

Linux内核就有这么一套机制,我们仅需调用一个接口,并根据接口的返回值来决定是否持续打印我们的信息。这个接口的内部会自动帮我们判断我们即将要打印的信息是否过于频繁。

复制代码
if(printk_ratelimit())
{
    printk(KERNEL_ERR "xxx driver broken!!!\n");
}

是的,就是这么简单。这个 printk_ratelimit() 函数是定义在 <linux/printk.h>上的。

这个函数的机理是会判断我们的打印的频率的,即它会限制这条打印在指定时间间隔内最多只能出现指定次数条。

这个限制条件是可以动态修改的,它们被定义在 /proc 目录下的两个文件中:

复制代码
/proc/sys/kernel/printk_ratelimit
/proc/sys/kernel/printk_ratelimit_burst

printk_ratelimit 表示时间间隔,printk_ratelimit_burst 表示频次间隔。默认情况下 printk_ratelimit 的值是 5 ,printk_ratelimit_burst 的值是 10。即指定的打印在每5秒的时间里最多只能打印10次。我们可以随时更改这两个文件的值来控制打印频率。

相关推荐
Oll Correct9 分钟前
实验八:验证以太网交换机的生成树协议STP
网络·笔记
Irissgwe39 分钟前
进程间通信
linux·服务器·网络·c++·进程间通信
创世宇图1 小时前
阿里云Alibaba Cloud Linux 4 LTS 64位生产环境配置-Nginx
linux·nginx
待续3012 小时前
OpenClaw 安装及使用教程(Windows / macOS / Linux)
linux·windows·macos
创世宇图2 小时前
Alibaba Cloud Linux 安装生产环境-mysql
linux·mysql
TEC_INO2 小时前
嵌入式 Linux 开发知识总结
linux·运维·服务器
IT小白32 小时前
windows的VMware虚拟机上的Linux系统(CentOS)配置永久ip(关机重启ip不变)
网络·网络协议·tcp/ip
喵叔哟3 小时前
29_内容生产质量网关Skill:草稿生成+事实校验+发布前检查
网络·人工智能
原来是猿3 小时前
VS Code Remote-SSH 连接失败:提示过程试图写入的管道不存在
linux·服务器·ssh
坚持就完事了3 小时前
Linux中的权限信息
linux·运维·服务器