Skip to content
SPECIFICTION
Get listed

CBMC vs GitHub CodeQL

CBMC

cprover.org

GitHub CodeQL

codeql.github.com

Side by side

FigureCBMCGitHub CodeQL
Price fromFree$30/mo
Free planYesYes
Free trial——
Open source——
Web—Yes
WindowsYesYes
macOSYesYes
LinuxYesYes
Self-hosted—Yes
Plans published15
Spec score · C and C++ Static Analysis Tools8.7 (#2)8.5 (#4)
PurposeCBMC is a bounded model checker for C and C++ programs.CodeQL is a language and toolchain for code analysis that treats code as data.
Supported languagesIt supports C89, C99, most of C11/C17, and many compiler extensions from GCC, Clang, and Visual Studio.CodeQL supports C/C++, C#, Go, Java, Kotlin, JavaScript, TypeScript, Python, Ruby, Rust, Swift, and GitHub Actions workflows.

Plans

CBMC

  • CBMCFree

CBMC pricing →

GitHub CodeQL

  • Free for research and open sourceFree
  • GitHub Code Security$30 a month
  • CodeQL for open source and researchFree
  • GitHub Code Security$30 a month
  • GitHub Free with CodeQL code scanningPrice not published

GitHub CodeQL pricing →

In their own words

CBMC

CBMC is a bounded model checker for C and C++ programs, available for Linux, macOS, and Windows. It checks memory safety, including array bounds and pointer use, along with several forms of undefined behavior and user-specified assertions. Its language range includes C89, C99, most of C11 and C17, and extensions from GCC, Clang, and Visual Studio. CBMC verifies by unwinding program loops and passing the resulting equation to a decision procedure. It can check C and C++ I/O equivalence with languages such as Verilog, and generate test cases for branch, decision, path, and MC/DC coverage. Listed language features include arrays, dynamic memory, nondeterminism, assumptions, assertions, and selected C++ features such as classes, templates, and STL containers. A MiniSat-based bit-vector solver is included; Boolector, CVC5, and Z3 are supported but must be installed separately. CBMC is free at free under a BSD 4-clause license. The Windows and macOS distributions are command-line tools without a GUI.

Visit cprover.org

GitHub CodeQL

GitHub CodeQL has no write-up on Specifiction yet; its figures are above.

Visit codeql.github.com