我正在做一个相当复杂的项目,作为一个额外的复杂性,它是一个内核 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/