linux检查内存是否泄漏,如何确定Linux内核模块是否泄漏内存

Eugene..

18

如果你需要检查一个内核模块是否泄漏了内存并且你的机器有x86架构,你可以使用KEDR系统,它包括一个内存泄漏检测器.

KEDR不要求您重建内核.在线文档(例如,参见"入门")描述了如何安装和使用KEDR.简而言之,程序如下.

安装(来源):untar源档案 - cmake <...> - make - make install

在加载模块之前启动KEDR:

$ kedr start -f leak_check.conf

然后您可以像往常一样加载模块并使用它.卸载后,KEDR会在debugfs中给你一个报告(通常安装debugfs /sys/kernel/debug),例如:

$ cat /sys/kernel/debug/kedr_leak_check/info

Target module: "...",

Memory allocations: 3

Possible leaks: 2

Unallocated frees: 0

文件possible_leaks从/sys/kernel/debug/kedr_leak_check/提供有关每个泄漏的内存块信息(地址,大小,调用栈).

最后,你可以停止KEDR(注意/sys/kernel/debug/kedr_leak_check/会消失):

kedr stop

如果您使用的系统的结构不是x86,那么Kmemleak也可能会有所帮助,尽管使用它有点困难.您可能需要使用CONFIG_DEBUG_KMEMLEAK参数设置为'y'来重建内核.不过,Kmemleak也是一个非常有用的工具.有关详细信息,请参阅内核源代码中的Documentation/kmemleak.txt.

KEDR支持2.6.31或更新的内核版本.我的是2.6.28.看起来像KEDR不能使用.我将尝试为我的内核找到类似的工具 (2认同)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值