摘自 http://t.cn/Rfc4sr3
静态程序分析(Static program analysis)是指在不运行计算机程序的条件下,进行程序分析
的方法。有些程序分析需要在程序运行时才能进行,这种程序分析称为动态程序分析。大
部分的静态程序分析的对象是针对特定版本的源代码,也有些静态程序分析的对象是目标
代码。静态程序分析一词多半是指配合静态程序分析工具进行的分析,人工进行的分析一
般称为程序理解或代码审查。 — 维基百科
这是一个静态分析工具大集合,其中[OSS]代表开源软件,[PROPRIETARY]代表付费软件,
欢迎各位补充。
C/C++
CMetrics[OSS] – 测算 C 文件的大小及复杂性
cqmetrics[OSS] – C 代码的质量度量工具
clang-tidy[OSS] – clang 静态分析
cppcheck[OSS] – C/C++代码静态分析
flawfinder[OSS] – 寻找可能存在的安全漏洞
flint++[OSS] – 跨平台, 无依赖端口的 flint, 由 C++程序开发,Facebook 也在用
oclint[OSS] – C/C++代码静态分析
splint[OSS] – C/C++代码静态分析
tis-interpreter[OSS] – 由标准 C 写的一款用于寻找敏感 bug 的解释器
vera++[OSS] – Vera++是一个可用于验证,分析以及变换 C++源代码的可编程工具
C
Code Analysis Rule Collection[OSS] – 包含一组特征, 代码修复以及在 Microsoft .NET 编译器
平台”Roslyn”进行了重构
code-cracker[OSS] – 一款适用于 C#和 VB 的分析库,且使用 Roslyn 进行重构, 代码分析
CSharpEssentials[OSS] – C# Essentials 是一个 Roslyn 特征分析程序集合, 代码修复以及进行
重构让其更能适应 C# 6 语言的特性
Designite[PROPRIETARY] – Designite 是一款设计质量评估工具,测算各种各样的代码质量