7

我需要一个针对我为基于 ARM 的板编写的 Linux 设备驱动程序的静态分析工具。我正在考虑以下几种工具:

  1. Sparse是一种计算机软件工具,已经在 Linux 上可用,旨在发现 Linux 内核中可能存在的编码错误。
  2. Linux 验证中心有两个活跃的项目旨在提高可加载内核模块的质量。

    • Linux Driver Verification(LDV) - 用于 Linux 设备驱动程序的静态源代码验证的综合工具集。
    • KEDR Framework- 用于动态分析和验证内核模块的可扩展框架。
    • 另一个正在进行的项目Linux File System Verification旨在开发用于验证 Linux 文件系统实现的专用工具集。
  3. 启用-Werror,-Wextra-Wall,GCC并运行Valgrind.

上次我玩 Sparse 时,我发现输出令人困惑,并且没有找到好的文档来解释输出。有没有人有关于稀疏工具的好文档?我可以使用哪些其他免费静态分析工具来验证我的 Linux 驱动程序?我知道 LINT 工具,但它已获得许可。

4

2 回答 2

4

Smatch是用于内核的 C 语言静态分析工具。它产生了数百个补丁。不少与安全相关或对稳定内核来说足够重要。

于 2012-12-20T15:28:06.250 回答
3

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

于 2013-10-25T21:27:55.783 回答