The Code Coverage Branch Monitor (CCBM) is a set of utilities that allow
instrumentation of C source code for the purpose of branch coverage
measurement. This encompasses operations for code instrumentation, removal
of this instrumentation, retrieval of coverage information, merging
coverage information, and displaying this information with reference to the
(original) source code.
The CCBM supports
gcov coverage.EEPROM memory in order to preserve information throughout system power-off situations.The CCBM is available for
The instrumentation basically adds a bit-assignment to every branch in the control flow. Initially 0, a set bit indicates that the corresponding branch has been executed. The bit-assignment can only distinguish “not reached” and “reached”; how often a branch in the source code has been executed is not measured.
The coverage information is usually read-out in some test environment of a
project. This read-out happens in an internal (ASCII-based) format and can
be associated with the instrumented source files later. The CCBM provides
operations for computing representations of the coverage information per
source code line and can summarise this in HTML overview files.
The CCBM has been successfully applied in various Level-B and Level-C projects in the avionics field, including the Airbus/KID A380 and A340/A318 families.
At Bremen University, the CCBM is used in the analysis of an kernel implementation for avionics (ARINC-653 API).