Saturday, October 24, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. Formal Verification Tools
  3. CBMC

CBMC

What it is

CBMC is free software for checking C and C++ programs through bounded model checking. It explores possible execution paths and evaluates assertions, with checks for array bounds, pointer safety, exceptions, user-defined assertions, and some undefined behavior, including signed integer overflow. The analysis unwinds loops before sending the resulting equation to a decision procedure, and may require limiting input size. The repository lists support for C89, C99, most of C11, C17, C23, many GCC and Visual Studio extensions, and SystemC through Scoot; listed input languages also include Java bytecode. CBMC supports contracts and can produce counterexamples. Its incremental SMT2 backend can use an SMT-LIB 2.6-compliant solver, with Z3 and CVC5 as examples. It runs on Linux, macOS, Windows, or self-hosted deployments. Available distribution routes include Homebrew instructions, Ubuntu DEB packages, Windows MSI installers, and Docker images. goto-cc can substitute for gcc or cl.exe in Makefiles to gather project models. The software is licensed under the 4-clause BSD license.

For and against

For

  • Checks array bounds, pointer safety, exceptions, and assertions
  • Can produce counterexamples
  • Supports multiple C standards and SystemC
  • Available for Linux, macOS, and Windows
  • Free under a 4-clause BSD license

Against

  • Analysis may require limiting input size
  • Loop unwinding makes verification bounded
  • Develop versions are not recommended for production use

The verdict

CBMC provides a range of program checks and integration options for bounded verification. Its input-size constraints and loop unwinding are important considerations when deciding whether it fits a verification task.

Who it suits

CBMC suits developers verifying C or C++ projects who can work with bounded analysis and want to integrate checks into development or continuous integration. Its listed language support also covers Java bytecode and SystemC.

Plans and prices

CBMC

Free

4-clause BSD licensed open-source software

Every plan, in full

On the record

Bounded analysis
CBMC may require restricting inputs to a bounded size, and its verification unwinds loops before passing the resulting equation to a decision procedure.diffblue.github.io · read 4 Oct 2026
Build integration
goto-cc can replace gcc or cl.exe in Makefiles to collect project models for verification.diffblue.github.io · read 4 Oct 2026
Continuous integration
The user guide describes using CBMC as part of routine software development and continuous integration.diffblue.github.io · read 4 Oct 2026
Distribution
The release page provides macOS Homebrew instructions, Ubuntu DEB packages, Windows MSI installers, and Docker container images.github.com · read 4 Oct 2026
Language support
The repository states support for C89, C99, most of C11, C17, C23, many GCC and Visual Studio extensions, and SystemC using Scoot.github.com · read 4 Oct 2026
License
The repository identifies CBMC as licensed under the 4-clause BSD license.github.com · read 4 Oct 2026
Purpose
CBMC is a bounded model checker for C and C++ programs that explores possible execution paths and checks assertions.diffblue.github.io · read 4 Oct 2026
Related tools
The user guide names CBMC Viewer and CBMC Starter Kit as third-party tools for summarizing findings and adding verification to a project.diffblue.github.io · read 4 Oct 2026
Release guidance
The repository says released versions are tested and intended for production use, while develop versions are not recommended for production use.github.com · read 4 Oct 2026
Safety checks
It can check array bounds, pointer safety, exceptions, user-specified assertions, and some undefined behavior such as signed integer overflow.github.com · read 4 Oct 2026
Solver support
CBMC supports an incremental SMT2 backend that can use an SMT-LIB 2.6 compliant solver, with examples for Z3 and CVC5.diffblue.github.io · read 4 Oct 2026
Support
The repository asks users encountering problems to file a bug report as a GitHub issue.github.com · read 4 Oct 2026

Alternatives to CBMC

Every alternative, ranked