Skip to content
SPECIFICTION
Get listed

CBMC

cprover.org

Free plan WindowsmacOSLinux

What it is

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.

Spec sheet

Purpose
CBMC is a bounded model checker for C and C++ programs.Read 2 Oct 2026 · cprover.org
Platforms
The maker lists Linux, Windows, and macOS availability and provides Linux packages for Debian, Ubuntu, and Fedora.Read 2 Oct 2026 · cprover.org
Support
The CBMC page directs questions to Daniel Kroening, and the CPROVER manual links to Google Groups support and announcements.Read 2 Oct 2026 · cprover.org
License
The maker identifies the license as BSD 4-clause; its terms permit redistribution and use in source or binary form subject to conditions.Read 2 Oct 2026 · cprover.org
Analysis method
Verification unwinds program loops and passes the resulting equation to a decision procedure.Read 2 Oct 2026 · cprover.org
C features
Supported C features include multidimensional and dynamically sized arrays, pointer checks, dynamic memory, nondeterminism, assumptions and assertions.Read 1 Oct 2026 · cprover.org
Cross-language checking
CBMC can check C and C++ for I/O equivalence with languages such as Verilog.Read 1 Oct 2026 · cprover.org
Interface
The maker describes the Windows and macOS releases as command-line tools with no GUI.Read 2 Oct 2026 · cprover.org
Language features
The supported features page lists C arrays, pointers, dynamic memory, assertions, and C++ classes, templates, and selected STL containers.Read 2 Oct 2026 · cprover.org
Language support
CBMC supports C89, C99, most C11/C17 and compiler extensions from GCC, Clang and Visual Studio.Read 1 Oct 2026 · cprover.org
License terms
The license provides the software “AS IS” and disclaims warranties and liability.Read 2 Oct 2026 · cprover.org
Linux packaging
CBMC is packaged for Debian and Ubuntu and can also be installed with Fedora's dnf package manager.Read 1 Oct 2026 · cprover.org
macOS limitation
The macOS distribution is command-line only and has no GUI.Read 1 Oct 2026 · cprover.org
Memory safety
CBMC verifies memory safety, including array bounds and safe pointer use.Read 1 Oct 2026 · cprover.org
Solver support
CBMC includes a MiniSat-based bit-vector solver and supports external SMT solvers including Boolector, CVC5, and Z3, which must be installed separately.Read 2 Oct 2026 · cprover.org
Solvers
CBMC includes a MiniSat-based bit-vector solver and supports external Boolector, CVC5 and Z3 solvers.Read 1 Oct 2026 · cprover.org
Supported languages
It supports C89, C99, most of C11/C17, and many compiler extensions from GCC, Clang, and Visual Studio.Read 2 Oct 2026 · cprover.org
Test generation
CBMC can generate test cases for coverage criteria including branch, decision, path, and MC/DC.Read 2 Oct 2026 · cprover.org
Undefined behavior
CBMC checks various forms of undefined behavior and user-specified assertions.Read 1 Oct 2026 · cprover.org
Verification
It checks memory safety, several kinds of undefined behavior, user assertions, and C/C++ I/O equivalence with other languages such as Verilog.Read 2 Oct 2026 · cprover.org
Verification method
CBMC unwinds program loops and passes the resulting equation to a decision procedure.Read 1 Oct 2026 · cprover.org
Windows limitation
The Windows download is an x64 command-line binary with no GUI and is run from the Visual Studio Command Prompt.Read 1 Oct 2026 · cprover.org

Plans and prices

CBMC Free BSD 4-clause license · command-line tool Read 2 Oct 2026 · cprover.org

Every CBMC plan and price →

Strong points and limits

Strong points

  • Checks memory safety and undefined behavior
  • Supports C89, C99, most C11 and C17
  • Can generate tests for several coverage criteria
  • Free under a BSD 4-clause license
  • Available on Linux, macOS, and Windows

Limits

  • Windows release has no GUI
  • macOS distribution is command-line only
  • External solvers must be installed separately

Who it suits

CBMC suits C and C++ developers who need bounded checks for memory safety, undefined behavior, or assertions. It also supports test generation and I/O-equivalence checks with languages such as Verilog.

Verdict

CBMC describes its language coverage, verification method, and solver options in detail. Windows and macOS users should be prepared to use a command-line interface.

Where Specifiction places it

Alternatives to CBMCAll alternatives →