Analysis tools logo

93 C Static Analysis Tools

Type:
Any

What is C?

C is an imperative procedural language. It was designed to be compiled to provide low-level access to memory and language constructs that map efficiently to machine instructions, all with minimal runtime support. Despite its low-level capabilities, the language was designed to encourage cross-platform programming. A standards-compliant C program written with portability in mind can be compiled for a wide variety of computer platforms and operating systems with few changes to its source code.

(More info)

What are the best C analysis tools?

104

Mega-Linter

  • Type: cli
625

Mega-Linter can handle any type of project thanks to its 70+ embedded Linters, its advanced reporting, runnable on any CI system or locally, with assisted installation and configuration, able to apply formatting and fixes

79

Teamscale

  • Type: service
  • Type: ide-plugin

Static and dynamic analysis tool supporting more than 25 languages and direct IDE integration. Free hosting for Open Source projects available on request. Free academic licenses available.

68

Semgrep

  • Type: cli
  • Type: service
6526

A fast, open-source, static analysis tool for finding bugs and enforcing code standards at editor, commit, and CI time. Its rules look like the code you already write; no abstract syntax trees or regex wrestling. Supports 17+ languages.

47

Sonatype

  • Type: service

Reports known vulnerabilities in common dependencies and recommends updated packages to minimize breaking changes

32

cppcheck

  • Type: cli
4120

Static analysis of C/C++ code.

30

clang-tidy

  • Type: cli

clang static analyser.

23

CodeScene

  • Type: service

CodeScene is a quality visualization tool for software. Prioritize technical debt, detect delivery risks, and measure organizational aspects. Fully automated.

21

Astrée

  • Type: cli

Astrée automatically proves the absence of runtime errors and invalid con­current behavior in C/C++ applications. It is sound for floating-point computations, very fast, and exceptionally precise. The analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules and supports qualification for ISO 26262, DO-178C level A, and other safety standards. Jenkins and Eclipse plugins are available.

18

Coverity

  • Type: cli

Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET.

16

PVS-Studio

  • Type: service

A ([conditionally free](https://pvs-studio.com/en/order/open-source-license) for FOSS and individual developers) static analysis of C, C++, C# and Java code. For advertising purposes [you can propose a large FOSS project for analysis by PVS employees](https://github.com/viva64/pvs-studio-check-list). Supports CWE mapping, MISRA and CERT coding standards.

15

Frama-C

  • Type: cli

A sound and extensible static analyzer for C code.

13

DeepCode

  • Type: service

DeepCode finds bugs, security vulnerabilities, performance and API issues based on AI. DeepCode's speed of analysis allow us to analyse your code in real time and deliver results when you hit the save button in your IDE. Supported languages are Java, C/C++, JavaScript, Python, and TypeScript. Integrations with GitHub, BitBucket and Gitlab.

11

Joern

  • Type: cli
901

Open-source code analysis platform for C/C++ based on code property graphs

11

scan-build

  • Type: cli

Analyzes C/C++ code using LLVM at compile-time.

10

Infer

  • Type: cli
13283

A static analyzer for Java, C and Objective-C

10

Phasar

  • Type: cli
663

A LLVM-based static analysis framework which comes with a taint and type state analysis.

5

CBMC

  • Type: cli
416

Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses.

5

Coderrect

  • Type: cli

Advanced static analyzer for multi-threaded software. Supports OpenMP, Pthreads, std::thread, and GPU/CUDA.

5

CodeSonar from GrammaTech

  • Type: cli

Advanced, whole program, deep path, static analysis of C, C++, Java and C# with easy-to-understand explanations and code and path visualization.

5

Klocwork

  • Type: service

Quality and Security Static analysis for C/C++, Java and C#.

4

Application Inspector

  • Type: service

Commercial Static Code Analysis which generates exploits to verify vulnerabilities.

4

Axivion Bauhaus Suite

  • Type: cli

Tracks down error-prone code locations, style violations, cloned or dead code, cyclic dependencies and more for C/C++, C#/.NET, Java and Ada 83/Ada 95.

4

Helix QAC

  • Type: cli

Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards.

4

PC-lint

  • Type: cli

Static analysis for C/C++. Runs natively under Windows/Linux/MacOS. Analyzes code for virtually any platform, supporting C11/C18 and C++17.

4

Polyspace Bug Finder

  • Type: cli

Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software.

4

trunk

  • Type: cli

Modern repositories include many technologies, each with its own set of linters. With 30+ linters and counting, Trunk makes it dead-simple to identify, install, configure, and run the right linters, static analyzers, and formatters for all your repos.

3

codeql

  • Type: service
  • Type: ide-plugin

Deep code analysis - semantic queries and dataflow for several languages with VSCode plugin support.

3

Fortify

  • Type: ide-plugin

A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby (1.9.3), Swift, Scala, VB, and XML.

3

todocheck

  • Type: cli
384

Linter for integrating annotated TODOs with your issue trackers

3

Unibeautify

  • Type: cli
  • Type: service
521

Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more.

2

Codiga

  • Type: service

Automated Code Reviews and Technical Debt management platform that supports 12+ languages.

2

cpp-linter-action

  • Type: cli
17

A Github Action for linting C/C++ code integrating clang-tidy and clang-format to collect feedback provided in the form of thread comments and/or annotations.

2

cpplint

  • Type: cli

Automated C++ checker that follows Google's style guide.

2

flint++

  • Type: cli
248

Cross-platform, zero-dependency port of flint, a lint program for C++ developed and used at Facebook.

2

IKOS

  • Type: cli
1659

A sound static analyzer for C/C++ code based on LLVM.

2

Kiuwan

  • Type: service

Identify and remediate cyber threats in a blazingly fast, collaborative environment, with seamless integration in your SDLC. Python, C\C++, Java, C#, PHP and more.

2

Polyspace Code Prover

  • Type: cli

Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code.

1

Atom-Beautify

  • Type: ide-plugin
1508

Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom editor.

1

CMetrics

  • Type: cli
62

Measures size and complexity for C files.

1

flawfinder

  • Type: cli
261

Finds possible security weaknesses.

1

LGTM.com

  • Type: service

Deep code analysis for GitHub and Bitbucket to find security vulnerabilities and critical code quality issues (using Semmle QL). Automatic code review for pull requests; free for public repositories.

1

lizard

  • Type: cli
1339

Lizard is an extensible Cyclomatic Complexity Analyzer for many programming languages including C/C++ (doesn't require all the header files or Java imports). It also does copy-paste detection (code clone detection/code duplicate detection) and many other forms of static code analysis. Counts lines of code without comments, CCN (cyclomatic complexity number), token count of functions, parameter count of functions.

1

ocular

  • Type: service

Enables code auditors and security teams to interactively investigate their unique code bases to find business logic flaws and technical vulnerabilities that traditional SASTs cannot. This is done by enabling the analyst to write their own custom queries. Can find hard-coded secrets, authentication issues, and malicious code like rootkits and backdoors.

1

pre-commit

  • Type: cli
8103

A framework for managing and maintaining multi-language pre-commit hooks.

1

splint

  • Type: cli
227

Annotation-assisted static program checker.

1

Undebt

  • Type: cli
1636

Language-independent tool for massive, automatic, programmable refactoring based on simple pattern definitions.

0

AppChecker

  • Type: cli

Static analysis for C/C++/C#, PHP and Java.

0

ApplicationInspector

  • Type: cli
3938

Creates reports of over 400 rule patterns for feature detection (e.g. the use of cryptography or version control in apps).

0

clazy

  • Type: cli
521

Qt-oriented static code analyzer based on the Clang framework. clazy is a compiler plugin which allows clang to understand Qt semantics. You get more than 50 Qt related compiler warnings, ranging from unneeded memory allocations to misusage of API, including fix-its for automatic refactoring.

0

coala

  • Type: cli
3321

Language independent framework for creating code analysis - supports [over 60 languages](https://coala.io/languages) by default.

0

codeburner

  • Type: cli
82

Provides a unified interface to sort and act on the issues it finds.

0

codechecker

  • Type: cli
1539

A defect database and viewer extension for the Clang Static Analyzer with web GUI.

0

Code Intelligence

  • Type: service

CI/CD-agnostic DevSecOps platform which combines industry-leading fuzzing engines for finding bugs and visualizing code coverage

0

CPAchecker

  • Type: cli

A tool for configurable software verification of C programs. The name CPAchecker was chosen to reflect that the tool is based on the CPA concepts and is used for checking software programs.

0

cqmetrics

  • Type: cli
47

Quality metrics for C code.

0

CScout

  • Type: cli
157

Complexity and quality metrics for for C and C preprocessor code.

0

Depends

  • Type: cli
133

Analyses the comprehensive dependencies of code elements for Java, C/C++, Ruby.

0

ESBMC

  • Type: cli
133

ESBMC is an open source, permissively licensed, context-bounded model checker based on satisfiability modulo theories for the verification of single- and multi-threaded C/C++ programs.

0

Goodcheck

  • Type: cli
134

Regexp based customizable linter.

0

graudit

  • Type: cli
1049

Grep rough audit - source code auditing tool.

0

include-gardener

  • Type: cli
56

A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create a graph (in dot or graphml format) which shows all `#include` relations of a given set of files.

0

LDRA

  • Type: cli

A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules.

0

LGTM

  • Type: cli

Find security vulnerabilities, variants, and critical code quality issues using queries over source code. Automatic PR code review; free for open source. Formerly semmle.

0

oclint

  • Type: cli
3511

A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C.

0

parasoft

  • Type: service

Automated Software Testing Solutions for unit-, API-, and web UI testing. Complies with MISRA, OWASP, and others.

0

Pronto

  • Type: cli
2475

Quick automated code review of your changes. Supports more than 40 runners for various languages, including Clang, Elixir, JavaScript, PHP, Ruby and more.

0

relint

  • Type: cli
32

A static file linter that allows you to write custom rules using regular expressions (RegEx).

0

Security Code Scan

  • Type: ide-plugin
733

Security code analyzer for C# and VB.NET. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. Integrates into Visual Studio 2015 and newer. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc.

0

Similarity Tester

  • Type: service

A tool that finds similarities between or within files to support you encountering DRY principle violations.

0

SonarLint for Visual Studio

  • Type: cli
334

SonarLint is an extension for Visual Studio 2015 and 2017 that provides on-the-fly feedback to developers on new bugs and quality issues injected into .NET code.

0

Soto Platform

  • Type: cli

Suite of static analysis tools consisting of the three components Sotoarc (Architecture Analysis), Sotograph (Quality Analysis), and Sotoreport (Quality report). Helps find differences between architecture and implementation, interface violations (e.g. external access of private parts of subsystems, detection of all classes, files, packages and subsystems which are strongly coupled by cyclical relationships and more. The Sotograph product family runs on Windows and Linux.

0

SourceMeter

  • Type: cli

Static Code Analysis for C/C++, Java, C#, Python, and RPG III and RPG IV versions (including free-form).

0

SVF

  • Type: cli
819

A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs.

0

TencentCodeAnalysis

  • Type: service
  • Type: cli
1114

Tencent Cloud Code Analysis (TCA for short, code-named CodeDog inside the company early) is a comprehensive platform for code analysis and issue tracking. TCA consist of three components, server, web and client. It integrates of a number of self-developed tools, and also supports dynamic integration of code analysis tools in various programming languages.

0

TscanCode

  • Type: cli
1424

A fast and accurate static analysis solution for C/C++, C#, Lua codes provided by Tencent. Using GPLv3 license.

0

vera++

  • Type: cli

Vera++ is a programmable tool for verification, analysis and transformation of C++ source code.

0

Veracode

  • Type: cli

Find flaws in binaries and bytecode without requiring source. Support all major programming languages: Java, .NET, JavaScript, Swift, Objective-C, C, C++ and more.

0

weggli

  • Type: cli
1680

A fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases.

-1

CAST Highlight

  • Type: cli

Commercial Static Code Analysis which runs locally, but uploads the results to its cloud for presentation.

-1

DevSkim

  • Type: ide-plugin
697

Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others.

-1

Synopsys

  • Type: cli

A commercial static analysis platform that allows for scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, and Swift).

-1

XCode

  • Type: cli

XCode provides a pretty decent UI for [Clang's](http://clang-analyzer.llvm.org/xcode.html) static code analyzer (C/C++, Obj-C).

-2

APPscreener

  • Type: cli

Static code analysis for binary and source code - Java/Scala, PHP, Javascript, C#, PL/SQL, Python, T-SQL, C/C++, ObjectiveC/Swift, Visual Basic 6.0, Ruby, Delphi, ABAP, HTML5 and Solidity.

-2

Cobra

  • Type: cli

Structural source code analyzer by NASA's Jet Propulsion Laboratory.

-3

Embold

  • Type: service

Intelligent software analytics platform that identifies design issues, code issues, duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin and more.

-6

Understand

  • Type: cli

Code visualization tool that provides code analysis, standards testing, metrics, graphing, dependency analysis and more for Ada, VHDL, and others.

Deprecated/unmaintained tools

1

pfff

  • Type: cli
172

Facebook's tools for code analysis, visualizations, or style-preserving source transformation for many languages.

0

Corrode

  • Type: cli
2108

Semi-automatic translation from C to Rust. Could reveal bugs in the original implementation by showing Rust compiler warnings and errors. Superseded by C2Rust.

0

CppDepend

  • Type: cli

Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.

0

shipshape

  • Type: cli
259

Static program analysis platform that allows custom analyzers to plug in through a common interface.

❤️ Sponsor this project

We are currently looking for partners who want to sponsor hosting and development of the project.

Check out our Github Sponsors page here

Missing an entry? Please let us know.