我们可以使用 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。