用于Linux内核模块和设备驱动程序的静态分析工具

时间:2012-12-20 07:48:13

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

我需要一个针对基于ARM的主板编写的Linux设备驱动程序的静态分析工具。我正在考虑下面提到的一些工具:

  1. Sparse是一个计算机软件工具,已在Linux上提供,旨在查找Linux内核中可能存在的编码错误。
  2. Linux Verification Center有两个活跃项目旨在提高可加载内核模块的质量。

    • Linux Driver Verification(LDV) - 用于Linux设备驱动程序的静态源代码验证的综合工具集。
    • KEDR Framework - 用于动态分析和验证内核模块的可扩展框架。
    • 另一个正在进行的项目是Linux File System Verification,旨在开发用于验证Linux文件系统实施的专用工具集。
  3. -Werror上启用-Wextra-WallGCC,然后使用Valgrind运行。
  4. 上次我玩Sparse时发现输出很混乱,没有找到解释输出的好文档。有没有人有关于稀疏工具的好文档?我可以用于Linux驱动程序验证的其他免费静态分析工具是什么?我知道LINT工具,但它的许可。

2 个答案:

答案 0 :(得分:4)

Smatch是用于内核的C的静态分析工具。它已经产生了数百个补丁。相当多的安全相关或者对于稳定的内核而言非常重要。

答案 1 :(得分:3)

如果你想写自己的规则,Coccinelle可能是合适的。如果要使用其他人编写的规则,可以使用集成到内核中的各种工具。检查第4.2节:文档/开发过程的代码检查工具/ 4.编写一些建议。