CBMC
|
These pages contain user tutorials, automatically-generated API documentation, and higher-level architectural overviews for the CProver codebase. CProver is a platform for software verification. Users can download CProver tools from the CProver website; contributors should use the repository hosted on GitHub. CBMC is part of CProver.
CBMC is a Bounded Model Checker for C and C++ programs. It supports C89, C99, most of C11 and most compiler extensions provided by gcc and Visual Studio. It also supports SystemC using Scoot. It allows verifying array bounds (buffer overflows), pointer safety, arithmetic exceptions and user-specified assertions. Furthermore, it can check C and C++ for consistency with other languages, such as Verilog. The verification is performed by unwinding the loops in the program and passing the resulting equation to a decision procedure.
For further information see cprover.org.
Get the latest release
Get the current develop version: git clone https://github.com/diffblue/cbmc.git
If you encounter a problem please file a bug report:
git clone git@github.com:YOURNAME/cbmc.git
develop
branch (default branch)develop
branchThe following pages attempt to provide the information that a developer needs to work on CBMC, in a sensible order. In many cases they link to the appropriate class-level or module-level documentation.
For higher-level architectural information, each of the pages under the Modules link gives an overview of a directory in the CProver codebase.
If you already know exactly what you're looking for, the best place to look is the API reference, which is generated from the codebase. You can search for classes and class members in the search bar at top-right or use one of the links in the sidebar.