At this week's Embedded Real Time Software and Systems conference (ERTS2) in Toulouse, France, AdaCore released new versions of its ADA language CodePeer static analysis and GNATcoverage dynamic analysis tools.
In this latest version of CodePeer 2.3, for the automated review and validation of Ada source code, it has been design to more efficiently assesses potential bugs before program execution to find errors efficiently and early in the development life cycle.
It also performs impact and vulnerability analysis when existing code is modified, and, using control-flow, data-flow and other advanced static analysis techniques, the tool detects problems that would otherwise only be found through labor-intensive debugging.
According to Tucker Taft, AdaCore Vice President and Director of Language Research, this latest update delivers more precise diagnostic messages and fewer “false positives”. It also includes an independent Ada front end, making it even more efficient and flexible.”
He said that to simplify the development process, CodePeer 2.3 provides better integration with AdaCore’s two IDEs: GNAT Programming Studio (GPS) and GNATbench (the GNAT Pro Ada plug-in for Eclipse and Wind River Systems Workbench).
Other enhancements include support for floating point overflow on unconstrained types, the ability to supply target configuration files, and improved support for existing codebases in Ada 83. Improved message review capabilities are now available through pragma Annotate, and the tool provides new warnings when a formal parameter could be declared with a more restrictive mode.
Tucker said CodePeer is fully integrated into the GNAT Pro development environment and comes with a number of complementary static analysis tools common to the technology – a coding standard verification tool (GNATcheck), a source code metric generator (GNATmetric), a semantic analyzer and a document generator.
GNATcoverage . According to Cyrille Comar, AdaCore Managing Director, the newest Version 1.2 of GNATcoverage does not require instrumentation of the executable, and supports usage with an iSystem hardware probe generating Nexus trace data, as well as usage with Valgrind on Linux. It supports Ada 95, Ada 2005 and many new features in Ada 2012.
A big plus for engineering managers who want to provide their developers with as much capability as they can at the lowest cost, Version 1.2 can not only be used for the for the upcoming SPARK 2014 revision but includes Beta support for C code development .
Other enhancements, he said, include generation of coverage information for generics on a per-instance basis, and improved HTML output (sortable columns, project awareness). The tool is now integrated with the GNAT Pro development environment. Qualification material is available to support GNATcoverage usage as a verification tool (DO-178B) or a tool at TQL-5 (DO-178C).
It can be used as part of the verification process for systems that need to be certified up to Level A, and can thus supply analysis up to Modified Condition/Decision Coverage (MCDC). GNATcoverage can also be used for railway applications that need to comply with EN-50128:2011 (T2).
“Now that it has been established that object branch coverage is not sufficient for claiming MCDC,” said Comar, “we can assert that GNATcoverage is the only coverage technology that does complete MCDC without application-level instrumentation.”
Originally developed as part of the Couverture research project, GNATcoverage performs coverage analysis on both object code – instruction and branch coverage – and Ada and C language source code – statement, decision, and Modified Condition/Decision Coverage (MCDC). Unlike most current technologies, said Comar, the tool works without requiring instrumentation of the executable.
“Instead, it analyzes trace data generated from a program running on either an instrumented version of AdaCore’s GNATemulator tool, Valgrind on Linux, or a target platform equipped with a supported hardware probe,” he said, which makes it possible for developers to “assess the breadth of a testing campaign by providing precise answers to the needs of safety-certification processes, such as the DO-178 avionics standard and the EN-50128 railway standard.”