静态程序分析(Static program analysis)是指在不运行计算机程序的条件下,进行程序分析的方法。有些程序分析需要在程序运行时才能进行,这种程序分析称为动态程序分析。大部分的静态程序分析的对象是针对特定版本的源代码,也有些静态程序分析的对象是目标代码。静态程序分析一词多半是指配合静态程序分析工具进行的分析,人工进行的分析一般称为程序理解或代码审查。 — 维基百科
信息参考来源:
检查引擎 | 支持的语言 | |
C++ | 数组的边界检查;异常内存使用,释放检查;内存泄漏检查,主要是通过内存引用指针;操作系统资源释放检查,中断,文件描述符等 | |
C++/python/… | 这个工具用于分析文本文件中所有的英语单词;并且通过内置字典数据库工具对这些单词进行解析;可以生成表格形式 并且支持导出到excel文件中;用于学习单词 | |
C++ | include头文件顺序错误 命名风格 const override | |
C++/python/… | 统计代码行数、圈复杂度等代码质量属性 | |
fixbotengine-cxx | C++ | |
codemars | C++/python/… | 是一个代码静态检查工具,用于检测代码中的错误、漏洞和不符合规范。它使用规则集来扫描代码并检测潜在问题。这些规则可以是预定义的规则,也可以是自定义规则。 |
secbrella | C++/python/… | |
C++/python/… | OAT(OSS Audit Tool)是OpenHarmony社区的自动化开源审视工具,用于帮助开发人员基于自定义的规则自动扫描开源仓代码,识别不符合预定规则的代码并输出扫描报告。 | |
dupf | C++/python/… | |
FossScan | C++/python/… | |
python | 寻找程序错误, 有助于执行编码标准以及嗅探代码异味. 此外它还包括pyreverse (UML图表生成器)以及symilar (一个类似的检测工具). 以及可选的扩展 | |
python | Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强。 | |
python/… | 检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来 | |
C++ | 寻找可能存在的安全漏洞 | |
C++ | Facebook开发和使用的C++静态分析工具 | |
C++ | 扫描代码中的分支错误、未使用的代码、太复杂的代码、冗余代码、坏味道、坏实践等 | |
C++ | –Vera++是一个可用于验证,分析以及变换C++源代码的可编程工具 |