Utilities for Analysis, Testing and Code Navigation
Extensive navigation and analysis tools can generate a variety of useful information including call graphs, source dependencies, project organization, and complexity metrics, giving you a thorough understanding of your program at multiple levels.
Unused subprogram eliminator (gnatelim)
The gnatelim tool reduces the size of executables by preventing the generation of object code for subprograms that are never called. Such subprograms are common in some object-oriented designs and large math libraries, for example, and preclude certification because such “dead code” is not allowed.
Program metrics generator (gnatmetric)
The gnatmetric tool analyzes source code to calculate a set of commonly used industry metrics that allow developers to estimate the size and better understand the structure of the source code. This information also facilitates satisfying the requirements of certain software development frameworks.
Heap usage monitor (gnatmem)
The gnatmem utility monitors dynamic allocation and deallocation activity in an executing program and displays information about incorrect deallocations and possible sources of memory leaks.
Unit testing framework (aunit)
AUnit is a programmers’ unit test framework based on CppUnit for C++. It facilitates test-driven development for both native or embedded software. GPS can generate the boilerplate code for test harnesses, suites and cases needed to use the framework.
For more information on AUnit view a series of tutorials created by Daniel Bigelow.
Pretty printer (gnatpp)
The gnatpp tool is an ASIS-based utility for source reformatting, i.e. “pretty-printing”. The tool takes an Ada source file as input and generates a reformatted version as output. Reformatting is controlled by an extensive set of switches, e.g. identifier case conventions, rules of indentation, and comment layout.
Program browser (gnatfind, gnatxref)
The two tools gnatxref and gnatfind use information generated by the compiler so that users can locate the declaration and references to any given entity. The gnatfind tool is intended for interactively locating definitions and/or references to a specified entity or entities, whereas gnatxref generates a full report of all cross-references.
Documentation generator (gnathtml, gps tool)
GPS provides a documentation generator which processes Ada source files and generates annotated HTML files. The generator uses a set of user-extensible template files to control the final rendering.
The gnatprep utility provides a simple preprocessing capability for Ada source code. It is designed for use with GNAT, but is not dependent on any special features of GNAT.