More GNAT Pro Toolsuite Components
- GNAT Progamming Studio (IDE)
- Compilation System
- GNAT Pro Utilities
- GNAT Ada - Java Interfacing Suite
- Visual Debugger
- GNAT Pro Libraries
- GNAT Pro Runtimes
- GNATbench (Plug-In for Eclipse)
- GPRbuild
GNATstack is 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.
The GNATstack tool statically predicts the maximum stack space required by each task in an application. The computed bounds can be used to ensure that sufficient space is reserved, thus guaranteeing safe execution with respect to stack usage. The tool uses a conservative analysis to deal with complexities such as subprogram recursion, while avoiding unnecessarily pessimistic estimates.
This static stack analysis tool exploits data generated by the compiler to compute worst-case stack requirements. It perform per- subprogram stack usage computation combined with control flow analysis.
This is a static tool in the sense that its computation is based on information known at compile time. It implies that when the tool indicates that the result is accurate then the computed bound can never overflow.
On the other hand, there may be situations in which the results will not be accurate (the tool will actually indicate this situation) because of some missing information (such as subprogram recursion, indirect calls, etc.). We provide the infrastructure to allow users to specify this missing call graph and stack usage information.
The main output of the tool is the worst-case stack usage for every entry point, together with the paths that lead to these stack needs. The list of entry points can be automatically computed (all the tasks, including the environment task) or can be specified by the user (a list of entry points or all the subprograms matching a certain regular expression).
The tool can also detect and display a list of potential problems when computing stack requirements:
The tool will allow the user to specify in a text file the missing information, such as the potential targets for indirect calls, stack requirements for externals calls, and user-defined bounds for unbounded frames.
To learn more about GNATstack in a recently published article, please click here.
For the most up-to-date information on available platforms please contact us at: sales@adacore.com
The world’s largest team of Ada experts at your fingertips
Continue Reading
Like Ada, the GNAT Pro package was designed with quality in mind. Whether you’re doing native, embedded or safety-critical development, learn how this well-crafted combination of tools and services allows your team to take full advantage of the benefits that Ada offers, and helps ensure a smooth, cost-effective development process.
Continue Reading