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

相关推荐
似水এ᭄往昔11 分钟前
【Linux网络编程】--UDP__SCOKE
linux·计算机网络
celiahul21 分钟前
当搜索引擎变成“问答机器人”,你的网站该如何适配?
网络·人工智能·搜索引擎·内容运营·外贸推广
luj_176824 分钟前
随机性在算法与占卜中的共通原理
c语言·开发语言·c++·经验分享·算法
Chen—LSN44 分钟前
C语言——深度理解指针(5)
c语言·数据结构·算法·排序算法
进击切图仔1 小时前
Ubuntu 挂载 XFS 磁盘并免密读写
linux·网络·ubuntu
qetfw1 小时前
Debian Apache2 执行 Shell CGI:动态时间页面配置与验证
linux·运维·debian
Shadow(⊙o⊙)1 小时前
CMake第一章——1.0CMake命令行,拉取源码、平台兼容的门槛技术。
linux·运维·服务器
呱呱巨基1 小时前
CMake基础
linux·c++·笔记·学习
wsad05321 小时前
Ubuntu 26.04 配置静态 IP 地址
网络·tcp/ip·ubuntu
智闲电子设计2 小时前
STM32 定时器 PWM 实战:从呼吸灯到舵机控制
c语言·stm32·单片机·嵌入式硬件·学习