2012-04-24 93 views
4

我在写驱动程序,我想知道哪些工具可以帮助扫描/分析Linux内核模块中的内存泄漏。linux内核模块中内存泄漏检测工具

+0

如果你设计的代码正确,驱动程序应该做一个最简单的功能,这将是非常简单的。如果是这样,应该很容易验证没有泄漏,没有任何工具。 – ugoren 2012-04-24 07:10:56

回答

2

我已经使用KEDR framework这里取得了一些成功。

还有KMEMCHECK,但我没有使用它,所以我不能担保它的易用性。

+0

我还会将[Kmemleak](http://www.mjmwired.net/kernel/Documentation/kmemleak.txt)添加到值得尝试的工具列表中。虽然KEDR适用于您选择的内核模块中的内存泄漏检测,但Kmemleak可以在系统范围的分析(内核本身和所有加载的模块一次)中方便使用。 – Eugene 2012-04-24 07:28:58

+0

至于Kmemcheck,它的目标可能不是首先揭示内存泄漏,而是检测不正确的内存访问(有点类似于Valgrind的Memcheck在用户空间中的做法)。 [Kmemcheck上的文档](http://www.mjmwired.net/kernel/Documentation/kmemcheck.txt)提供了更多细节和另一个用法示例。 – Eugene 2012-04-24 07:34:24

+0

关于KEDR,如果有人想将KEDR 0.3用于内核3.3或更新的版本,那么如何在这些内核上正确构建它的提示是[here](http://code.google.com/p/kedr/issues/)细节?ID = 5)。 – Eugene 2012-04-24 07:45:01