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次。我们可以随时更改这两个文件的值来控制打印频率。

相关推荐
Championship.23.244 小时前
Linux 3.0 锁机制与故障排查详解
linux·运维·服务器
天疆说4 小时前
Zotero Connector 在 Edge 里找不到桌面 Zotero(Linux / Zotero 9.0.6 / Edge 150)
linux·前端·edge
风123456789~6 小时前
【Linux专栏】ls 排除某个文件
linux·运维·服务器
IpdataCloud6 小时前
担心IP暴露隐私?用安全IP查询工具自查,三步配置网络出口
网络·tcp/ip·安全·ip
xy34537 小时前
wireshark 如何捕获信息
网络·测试工具·渗透测试·wireshark
IT曙光7 小时前
ubuntu apt-get离线源制作
linux·ubuntu
其实防守也摸鱼7 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚7 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
玖玥拾8 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
Darkwanderor8 小时前
对Linux的进程控制的研究
linux·运维·c++