gcc - 夹板与 gcc : are external static code analysis tools worth the effort for C codebases?

标签 gcc linux-kernel splint

我正在做一个相当复杂的项目,作为一个额外的复杂性,它是一个内核 Linux 模块。在这样的代码库上运行像夹板这样的 linting 工具当然不是不可能的 [1],但是微不足道的努力还不足以让事情顺利进行。

在我投入更多时间之前,我希望能就这个问题获得一些反馈和意见。有了足够多的标志,gcc 会进行大量检查。在实践中使用单独的静态代码分析工具是否仍然值得?

[1] http://www.cs.virginia.edu/pipermail/splint-discuss/2005-January/000531.html

最佳答案

除了 sparse 等工具, 我建议看看 LDV project . LDV 首先是面向检查 Linux 驱动程序的。该系统执行比 splint 更深入的静态分析。和 sparse并且可以发现非常难以捉摸的问题。

LDV 是免费软件。

如果您想尝试但没有时间部署它,他们有 online verification service您可以在其中上传代码并进行检查。

除此之外,Coccinelle系统可能也值得一看。与 LDV 一样,Coccinelle 被用于检测 Linux 内核中的许多不同错误。

关于gcc - 夹板与 gcc : are external static code analysis tools worth the effort for C codebases?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8225839/

相关文章:

c++ - 模板特化的不同编译器行为

c - 使用另一个数组索引一个数组 - gcc 6.3 运行时错误

linux - 在 ARM 上用 DEBIAN 替换 YOCTO

c - 夹板:定义前使用的局部变量

c - 夹板有趣的错误消息

c - 如何在Linux Ubuntu上使用splint进行C程序?

c - 在 while 循环中反转 printf 函数的输出

visual-studio-2008 - Visual Studio 2008 调试 CygWin gcc 编译的程序

c - 奇怪的错误(取消引用指向不完整类型的指针)

compiler-errors - “' errno ' undeclared”编译Linux内核时