linux内核模块中的内存泄漏检测工具

Posted

技术标签:

【中文标题】linux内核模块中的内存泄漏检测工具【英文标题】:Tools for memory leak detection in linux kernel modules 【发布时间】:2012-04-24 03:00:15 【问题描述】:

我正在编写驱动程序,我想知道有助于扫描/分析 Linux 内核模块中的内存泄漏的工具。

【问题讨论】:

如果你的代码设计正确,驱动程序应该做一个最小的功能,这将是非常简单的。如果是这样,应该很容易验证没有泄漏,无需任何工具。 【参考方案1】:

我在这里使用了KEDR framework 并取得了一些成功。

还有KMEMCHECK,不过我没用过,不能保证好用。

【讨论】:

我还将Kmemleak 添加到值得尝试的工具列表中。虽然 KEDR 对您选择的内核模块中的内存泄漏检测很有用,但 Kmemleak 在系统范围的分析中可能很方便(内核本身和所有加载的模块一次)。 对于 Kmemcheck,它的目标可能不是一开始就揭示内存泄漏,而是检测不正确的内存访问(有点类似于 Valgrind 的 Memcheck 在用户空间中所做的)。 The docs on Kmemcheck 提供更多详细信息和另一个使用示例。 关于 KEDR,如果有人想将 KEDR 0.3 用于内核 3.3 或更高版本,如何在此类内核上正确构建它的提示是 here。

以上是关于linux内核模块中的内存泄漏检测工具的主要内容,如果未能解决你的问题,请参考以下文章

linux内存泄漏怎么查

valgrind--CPP程序内存泄露检查工具

使用UMDH检测内存泄漏

如何在linux下检测内存泄露

Netty源码-内存泄漏检测toLeakAwareBuffer

Cygwin 中的内存泄漏检测工具