首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >splint vs gcc:外部静态代码分析工具值得为C代码库付出努力吗?

splint vs gcc:外部静态代码分析工具值得为C代码库付出努力吗?
EN

Stack Overflow用户
提问于 2011-11-22 19:11:50
回答 2查看 2.1K关注 0票数 5

我正在做一个相当复杂的项目,更复杂的是它是一个内核内的Linux模块。在这样的代码库上运行像splint这样的linting工具当然不是不可能的1,但微不足道的努力并不足以让事情继续下去。

在我投入更多时间之前,我希望在这个问题上获得一些反馈和意见。有了足够的旗帜,gcc做了相当多的检查。在实践中,使用单独的静态代码分析工具仍然值得吗?

1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-22 19:20:14

虽然splint绝对是整洁的,但我认为在Linux内核源代码上使用它所需的努力可能比它所带来的回报还要多。

但是,内核开发人员有自己的sparse工具来执行一些类似的检查,并且已经将其使用深度集成到内核源代码中。将它集成到您的源代码中也应该是很自然的,因为它已经遍布内核源代码。有关使用sparse的详细信息,请参阅Documentation/sparse.txt

有一个商业项目,Coverity,它偶尔会扫描许多“高度重要”的开源项目来发现问题。他们已经用他们的工具在Linux内核源代码中发现了成百上千的bug。(这是一个快乐的故事,他们为自己的产品做广告,美国政府得到了一大堆极其重要的代码审查,开源作者获得了免费的bug报告,开源用户获得了免费代码审查的好处。四方获胜!)

购买Coverity的专业知识是否值得是另一个问题--但与sparse集成将为您带来静态代码检查工具的一些好处,而无需支付许可费。

票数 3
EN

Stack Overflow用户

发布于 2011-11-23 14:40:39

除了像sparse这样的工具之外,我还建议看看LDV project。LDV首先面向检查Linux驱动程序。该系统比splintsparse执行更深入的静态分析,并且可以检测非常难以捉摸的问题。

LDV是自由软件。

如果你想试一下,但又没有时间部署它,他们有一个online verification service,你可以在那里上传你的代码并进行检查。

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8225839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档