首页 / 知识
您使用什么工具进行静态代码分析?
2023-04-12 19:11:00

What tools do you use for static code analysis?关于循环复杂性的问题使我对静态代码分析有了更多的思考。 分析代码的复杂性和一致性有时会很有用,我想开始做更多的事情。 您建议(每种语言)使用哪些工具进行此类分析? 维基百科提供了大量工具,但是人们以前尝试过哪些工具? 编辑:正如David指出的那样,当涉及基于C / UNIX的工具时,这并不是一个尚未完全解决的问题。 我一直在为我的Objective-C iPhone项目(iOS应用程序)建立一个Hudson持续集成(CI)生成系统,并编译了各种各样的工具,这些工具可用于在生成过程中分析我的项目:
对于C和Objective-C,您还可以使用LLVM / Clang静态分析器。 它是开源的并且正在积极开发中。 对于.Net,我们使用NDepend。它是一个很棒的工具,可以集成到构建中(我们使用CCNet)。 http://www.ndepend.com/ HTH。 对于C ++,我使用CppCheck。看来工作正常。 显然,答案取决于编程语言。 UNO非常适合C程序。 @Thomas Owens:我想你是说夹板。 如果您正在寻找基于C / UNIX的工具,还请参见选择静态代码分析工具的问题。 Checkstyle,Findbugs和PMD在Java中都可以很好地工作。我目前对NetBeans中运行的PMD感到非常满意。它具有一个相当简单的GUI,用于管理您要运行的规则。在一个文件,整个包或整个项目上运行检查器也非常容易。 我在Eclipse中经常使用PMD插件。它非常好,而且可配置。如果您正在寻找更多的样式执行器,则CheckStyle也很好。 我的管理员真的很便宜,所以我只能使用真正便宜的工具:
1)CCCC(C / C ++代码计数器):与行数有关的各种结果(与注释行,圈复杂度,信息流等相对) 我们使用Palm的Coverity Prevent进行C和C ++代码分析,并且在发现代码中的一些隐藏错误方面做得非常好。它还发现了很多不太可能遇到的问题,但是很容易在工具生成的代码数据库中将其标记为"无法解决"或"不是问题"。它很昂贵,但是公司偶尔会在开源项目上运行,并向维护者提供报告。如果您想了解更多有关我们的经验,他们会在他们的网站上提供有关我们使用该产品的白皮书。 我们对C代码使用Programming Research的QAC。工作正常。 最近,我们一直在谈论签出一些更高级的静态/动态代码分析器,例如Coverity's Prevent或GrammaTech的分析工具。 他们声称不仅可以进行静态分析,还可以发现运行时错误等。一个主要卖点是应该减少误报。 Lint是我在上一个职位上使用过的唯一工具。情况还不错,它建议的大多数内容都是不错的收获,有些没有什么意义。只要您没有适当的流程来确保没有皮棉错误或警告,那么捕获一些其他隐藏的错误很有用。 我已经在多种语言中使用了相当多的开源和商业静态分析工具,并且我发现总体讨论符合称为技术债务的概念(本文将对此进行详细介绍)。 不过,为了快速解答,以下是我最喜欢的每种语言:
我唯一使用过这些工具之一的就是Split(C编程语言)。我认为这是有帮助的,但我绝不是超级用户,我认为我几乎不了解它可以做什么。 |
最新内容
相关内容
python怎么循环输入
python怎么循环输入,培训,语句,条件,双数,表达式,详解,两者,命令,下面,次数,python中的循环语句,可使用for循环,或者while循环。两者的区别是,fopython循环怎么写
python循环怎么写,培训,语句,条件,双数,表达式,详解,两者,命令,下面,次数,python中的循环语句,可使用for循环,或者while循环。两者的区别是,forpythonPython里有死循环吗?
pythonPython里有死循环吗?,培训,对比,方法,道理,以上,代表,程序,更多,内容,何为死循环?在编程中,一个无法靠自身的控制终止的循环被称为死循python让Python代码更易维护的工具
python让Python代码更易维护的工具,代码,工具,培训,python循环的elif报错是什么原因
python循环的elif报错是什么原因,培训,数据,语句,条件,结果,变量,使用方法,程序,更多,内容,python循环的elif报错:else和elif语句也可以叫做子python如何退出循环
python如何退出循环,培训,代码,语句,条件,嵌套,序列,剩余,最小,以上,语言,break语句pythonbreak语句,就像在C语言中,打破了最小封闭for或whilepython循环执行语句怎么写
python循环执行语句怎么写,培训,项目,语句,条件,序列,双数,括号,后跟,字符串,语法,python编程中while语句用于循环执行程序,即在某条件下,循环pythonfor循环语句怎么写
pythonfor循环语句怎么写,数据,培训,项目,语句,循环体,实例,教程,时会,字符串,序列,pythonfor循环可以遍历任何序列的项目,如一个列表或者一个python怎么写循环
python怎么写循环,培训,语句,条件,双数,表达式,详解,两者,命令,下面,次数,python中的循环语句,可使用for循环,或者while循环。两者的区别是,forpython函数中使用for循环
python函数中使用for循环,培训,函数,内部,都会,实例,以上,更多,内容,python函数中使用for循环1、在for循环中使用函数需要更长的执行时间,因pythonfor…in循环的使用
pythonfor…in循环的使用,代码,培训,对象,方法,分配,都会,变量,实例,以上,程序,pythonfor…in循环的使用1、说明(1)for-in循环中的变量值由fopython有几种循环遍历的方法?
python有几种循环遍历的方法?,数字,培训,数组,方法,副本,序列,字典,函数,以上,操作,python有几种循环遍历的方法?1、for-in可以用来遍历数组