【问题标题】:Use static analysis tools to check null pointers and memory leaks in Linux device drivers使用静态分析工具检查 Linux 设备驱动程序中的空指针和内存泄漏
【发布时间】:2015-06-10 02:53:03
【问题描述】:

我想使用静态分析工具来检测 Linux 设备驱动程序 (linux-3.17.2) 中的空指针取消引用和内存泄漏。

我尝试了一些工具:

  1. Clang 静态分析器
    它显示了一些不重要的警告,例如“在初始化期间存储到 'usbhid' 的值永远不会被读取”。
  2. 匹配和 Cppcheck 他们发现了一些缺陷,但是维护者或我自己发现的许多空指针取消引用都无法检测到。

您能否推荐一些其他有用的静态工具来检测 Linux 设备驱动程序中的真正错误?

【问题讨论】:

    标签: memory-leaks linux-kernel static-analysis device-driver null-pointer


    【解决方案1】:

    这里是list 的可用工具。取决于您是在寻找“免费”工具还是商业工具 - 它为您提供了一个很好的概述。另一种可能性是coverity scan project - 开源项目可以申请并获得免费扫描。

    其他选项有:

    【讨论】:

    • 谢谢!我试过你提到的一些工具。 Splint、ffectinder 和 UNO 不能直接用于 Linux 设备驱动程序,因为会出现一些解析错误。 Smatch 和 sparse 被我用过。但它们并没有显示出很好的结果。 Valgrind 可以直接为司机工作吗?我知道它可以用于应用程序。
    【解决方案2】:

    不久前,PVS-Studio 发布了关于 Linux 3.18.1 检查的article。搜索内存泄漏是他们的最爱;他们极大地应对了搜索错字。尽管如此,他们还是发现了错误,我决定在这里提到这篇文章。顺便说一句,他们有很多关于搜索的文章 - where and what they found。

    【讨论】:

      猜你喜欢
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多