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

相关推荐
L162476几秒前
OpenSSH 半自动升级方案(独立编译 + 手动迁移 + 重建 systemd 服务)
linux·服务器·ssh
半旧夜夏6 分钟前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器
Cheng小攸14 分钟前
综合实验2
网络·windows
Soari1 小时前
SSH 主机密钥冲突
运维·网络·ssh
爱莉希雅&&&1 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
z200509301 小时前
【linux学习】深入理解linux文件I/O,从C标准库到内核态
linux·学习·操作系统
.千余2 小时前
【C++】C++类与对象2:C++构造函数、运算符重载与流输入输出全面解析
c语言·开发语言·前端·c++·经验分享
weixin_307779132 小时前
面向高性能保密计算的定制 Linux 系统构建与自动部署方案
linux·安全·网络安全·性能优化·系统安全
且听风吟_xincell2 小时前
用 TypeScript 从零写一个 TCP 聊天室(上)—— 网络编程入门实战
网络·tcp/ip·typescript
着迷不白2 小时前
五、文本处理工具+正则表达式
linux·运维·服务器