Analyze and Report Code Coverage

GNATcoverage performs coverage analysis at both object code level (instruction and branch coverage), and Ada or C source code level (Statement, Decision and Modified Condition/Decision Coverage - MC/DC).

Unlike most coverage technologies, GNATcoverage works without requiring instrumentation of the application code. Instead, the uninstrumented code runs directly on GNATemulator, a lightweight and efficient processor emulation tool instrumented to produce execution traces, or on a target board with trace capabilities.

GNATcoverage can help assess the completeness of a testing campaign and provide precise answers to the needs of safety-certification processes such as the DO-178 avionics standard. The tool was originally developed as part of the Couverture research project.

Key Features


Combines Agile concepts with ease-of-use.

In conjunction with GNATemulator, GNATcoverage can be installed on an individual developer's desktop, allowing efficient testing and coverage assessments using local resources only.

Unlike the situation with shared hardware, many instances of the tool can be launched simultaneously; coverage analysis can be performed in parallel by several members of a team.

In addition, GNATcoverage was designed to be easily scriptable to facilitate the use of continuous integration techniques made popular by the Agile community.

Helps meet certification requirements (DO-178B/C Level A, EN 50128, IEC 61508, ECCS-E40B).

GNATcoverage provides source coverage information for all levels of safety certification (Statement Coverage, Decision Coverage and Modified Condition/Decision Coverage).

Qualification material is available for DO-178B and DO-178C up to level A (MC/DC).

GNATcoverage can also provide object-level metrics, with support for both instruction and branch coverage criteria.

Analyzes the final code that will run on the embedded target.

GNATcoverage provides code coverage information directly for the embedded target code.

GNATemulator can execute target code and is instrumented to produce execution traces so that there is no instrumentation of the application code.