Stack overflow is now a thing of the past.
StackAnalyzer automatically determines
the worst-case stack usage of the tasks in your application. The
analysis results are shown as annotations in the call graph and
control flow graph.

Call graph with stack usage annotations

Control flow graph with stack usage annotations
Features
- Detailed and precise information on both
user-stack and system-stack usage by application tasks.
- Stack analysis for all hierarchy levels:
routines, basic blocks, assembly instructions.
- Freely selectable entry points for the analysis.
- Easy recognition of critical program sections
thanks to customizable color coding.
- Fully integrated, feature-rich graphical and textual viewers
for control flow, analysis results, source code, assembly code, and configuration files.
- Seamless integration with other analysis tools from AbsInt
in a single intuitive user interface.
Why do you need StackAnalyzer?
Stack memory has to be allocated statically by the
programmer. Underestimating stack usage can lead to serious runtime
errors which can be difficult to find. Overestimating stack usage
means a waste of memory resources.
- StackAnalyzer provides
automatic tool support to calculate the stack usage of your
application. The analysis results are valid for all inputs and each
task execution.
- StackAnalyzer not only
reduces development effort but also helps to prevent runtime
errors due to stack overflow.
- The analysis results provide valuable
feedback in optimizing the stack usage of your application.
Supported targets
- StackAnalyzer for C16x/ST10
supports all 16-bit C16x/XC16x/C16x2 and ST10/Super10 microcontrollers
from Infineon and ST. It reads executables
in IEEE695 format (
.abs) as produced by the TASKING C compiler
or executables in OMF166 format as produced by the KEIL compiler.
|

 |
- StackAnalyzer for PowerPC
supports all 32-bit PowerPC microprocessors from Motorola and IBM. It reads
executables in
.elf format as produced by either of the following
compilers:
- GCC
- DiabData C compiler from WindRiver
- GHS ADA compiler
- GHS C/C++ compiler
|


 |
- StackAnalyzer for HC12/HCS12 reads linked
binary executables for M68HC12/STAR12/HCS12X microprocessors
as produced by the Cosmic C compiler or the Hiware C compiler from Metrowerks.
|

 |
- StackAnalyzer for ARM reads
binary executables given either as
.elf files that have been
produced from C source code by the C compiler in the ARM Developer Suite
or as .out files in coff format that have been produced from
C source by the TI C compiler.
|

 |
- StackAnalyzer also
supports the following processor/compiler combinations:
- TMS320C3x/Texas Instruments (TI)
- NEC V850/GHS (Green Hills)
- x86 (restricted)/Lynxworks GCC
- x86rm (realmode)/ic86
- M68k/GCC
- M68k/HP68K
- TriCore/TASKING (Altium)
- TriCore/HighTec gcc
- ARC/Metaware
- NEW: LEON3/GCC
|




 |
Qualification Support Kits (QSKs) for DO-178B level A are available for:
- C16x/Tasking
- M68020/GCC
- MPC55xx/GCC
- MPC755/Diab
- PPC/Diab
- PPC/GCC
Stack depth analysis for further target processors
and compilers is currently under development. Please do not hesitate to
contact us for more information.
StackAnalyzer is now also available as an integral part of
the SCADE Suite, the market-leading mission
and safety-critical embedded-software development environment from Esterel Technologies.
SCADE is the only model-based design solution to offer DO-178B qualified C code
generation up to level A, certified IEC 61508 C code generation up to SIL 3 and
certified EN 50128 C code generation up to SIL 4. Thanks to StackAnalyzer, SCADE
is the first embedded-software development environment worldwide to feature
stack usage analysis at the model level.
The bottom line
When searching
for actual products performing stack usage analysis for embedded software, the
StackAnalyzer seems to be the most promising (and probably only) choice.
Volker Barthelmann, University of Erlangen