文档管理中心

常用的代码检测工具

本文分享一些常用的代码检测工具,其统计结果主要基于CODEX、CODECC、CodeStyle、Valgrind几个工具的结果。


从excel统计结果来看,codex包含molint + Coverity + CodeMars几个工具的结果,codecc也是包含molint + Coverity + CodeMars几个工具的结果,codeStyle主要是检测C语言规范和C安全编码规范,实际上codex和codecc应该还包含fossid的工具。


业界通用代码检查工具,介绍如下:


PCLint :是GIMPEL SOFTWARE公司开发的C/C++软件代码静态分析工具,它的全称是PC-Lint/FlexeLint for C/C++ 。PC-Lint不仅能够对程序进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针以及冗余的代码,还能够有效地帮你提出许多程序在空间利用、运行效率上的改进点。

Coverity
:拥有业界最低的误报率(< 15%)和全面的分析(100%路径覆盖),在内存操作、无效代码等方面有突出表现。


Klocwork
:软件是Klocwork公司基于专利技术分析引擎开发的,综合应用了多种近年来最先进的静态分析技术,在内存管理检查方面有一定价值,但整体检查项和漏报率有弱点。


Fortify: Fortify Source Code Analyzer ,Fortify SCA 是一组软件安全分析器,能够在多种编程语言范围中搜索那些违背安全方面的代码规则和指导标准的问题,Fortify更偏重于代码安全性检查。但误报率比较高。

Fossid : 开源代码扫描,可以帮助全面、准确、高效的发现和避免开源风险,安全、合规的使用开源软件。

Simian : (Similarity Analyser) 是一种用来分析文件内容重复率的工具(计算重复代码行),它可以支持 Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy等语言,甚至纯文本中的重复率也可以分析。

Sourcemonitor :一个用来静态分析代码的开源小工具,它能够返回代码的复杂性度量值,例如圈复杂度,函数深度。

Valgrind :功能很多,常用于检查内存泄漏,包含几个常见工具如下。


memcheck --> 这是valgrind应用最广泛的工具,一个重量级的内存检查器,能够发现开发中绝大多数内存错误使用情况,比如:使用未初始化的内存,使用已经释放了的内存,内存访问越界等。


callgrind --> 它主要用来检查程序中函数调用过程中出现的问题。


cachegrind --> 它主要用来检查程序中缓存使用出现的问题。


helgrind --> 它主要用来检查多线程程序中出现的竞争问题。


massif --> 它主要用来检查程序中堆栈使用中出现的问题。


extension --> 可以利用core提供的功能,自己编写特定的内存调试工具


by:HW-HJB

点赞
收藏
回复
2
分享
举报
浏览4825 编辑于2019-08-29 01:58未知归属地
全部评论
最多点赞
最新发布
最早发布
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。