AdaCore today launched GNATstack, a software analysis tool that enables software development teams to accurately predict the maximum size of the memory stack required to host an embedded software application. GNATstack is an important component of AdaCore’s High-Integrity solution (GNAT Pro HIE), which is an enhanced Ada development environment used for building safety-critical, embedded software applications that require certification. The tool is targeted at system designers creating high integrity and high reliability embedded applications.
“Manually calculating the amount of memory that should be allocated to a memory stack increases the risk that an embedded application will use more memory on the stack than is available, which can result in memory corruption, unpredictable execution, or a fatal system crash,” said AdaCore senior software engineer Jose Ruiz. “GNATstack uses data generated by the compiler to determine the worst-case stack requirements. This output is used to ensure that sufficient memory is reserved for the stack(s), and to guarantee that the software application executes safely.”
GNATstack calculates the worst-case stack requirements for every stack entry point by performing per-subprogram stack usage as well as control flow analysis. The tool provides an audit trail for the certification of high integrity and high reliability applications, and can detect and display a list of potential problems when calculating the stack requirements, including:
- Indirect (including dispatching) calls: the tool will indicate the number of indirect calls made from any subprogram.
- External calls: the tool displays all the subprograms that are reachable from any entry point that does not have a stack or call graph information.
- Unbounded frames: the tool displays each reachable subprogram that has an unbounded stack requirement. The required stack size depends on the arguments passed to the subprogram.
- Cycles: the tool can detect all the cycles in the call graph.
Availability and Pricing
GNATstack is available in the GNAT Pro HIE package and as an add-on for GNAT Pro. For more information on GNATstack features, please contact AdaCore (firstname.lastname@example.org).
Founded in 1994, AdaCore is the leading provider of commercial software solutions for Ada, a modern programming language designed for large, long-lived applications where reliability, efficiency and safety are critical. AdaCore’s flagship product is GNAT Pro, which comes with expert online support and is available on more platforms than any other Ada technology. AdaCore has customers worldwide.
Use of Ada and GNAT Pro continues to grow in high-integrity and safety-critical applications, including commercial and defense aircraft avionics, air traffic control, railroad systems, financial services and medical devices. AdaCore has North American headquarters in New York and European headquarters in Paris.