我们可以使用 cppcheck 来检测内核内存泄漏(由 kzalloc 或 kmalloc 创建的内存)吗?如果是,请提供一些我们如何使用它的例子。
我试过写 .cfg 文件 ex: mem.cfg
它有内容文件名 mem.cfg
<?xml version="1.0"?>
<def format="1">
<memory>
<dealloc>kfree</dealloc>
<alloc init="false">kmalloc</alloc>
<alloc init="true">kzalloc</alloc>
</memory>
</def>
在运行 cppcheck 命令时,我使用了如下命令。
cppcheck --library=mem.cfg fs/sample/my_module.c
这里 my_module.c是内核模块,它使用内核 api ex: kzalloc实现了内核内存创建。
我没有使用内核内存免费 api。它应该会导致内核内存泄漏,但未报告 cppcheck。