StackAnalyzer for x86 statically determines the worst-case stack usage
of tasks in safety-critical applications written or generated in C, C++ or PL/I
and compiled to run on 16-bit, 32-bit or 64-bit x86 processors.
Key features
- Static analysis of binary files, exactly as they are executed in the final system.
- Clear and precise information on the worst-case stack usage by application tasks.
- Detailed analysis results for all hierarchy levels: routines, basic blocks, assembly instructions.
- Recursions, function pointers, inline assembly code, and library-function calls are all taken into account.
- Automatic recognition of dead code.
- Feature-rich GUI with graphical and textual views for analysis results, control flow, source code, assembly code, statistics, and more.
- Command-line mode for easy integration into automated build processes.
- Exceptionally fast analysis of complex real-world software.
- Freely selectable entry points for the analysis,
so you can focus on the worst-case path or other areas of interest,
and speed up the analysis even further.
- Seamless integration with other analysis tools from AbsInt —
e.g. TimingProfiler
for profiling the worst-case execution time.
Your benefits
- StackAnalyzer lets you prevent stack overflow for all possible inputs
and task executions under any circumstances — without wasting hardware resources.
- StackAnalyzer requires no code instrumentation, no testing, no measuring,
no modification of your system, no modification of your toolchain,
and it will not be misled by potential flaws in debug information.
- Using StackAnalyzer is essential in meeting current safety standards
such as ISO 26262, DO-178B/C, IEC-61508, and EN-50128, where statically
analyzing your stack usage is part of the architectural safety requirements.
Supported architecture variants and extensions
- x86-32 (ia32, Intel 32)
- x86-64 (AMD64, Intel 64)
- x87
- MMX
- 3DNow!
- SSE
- SSE2
- SSE3
- SSE4.1
- SSE4.2
- AES
- AVX
- AVX2
This covers a wide array of architectures, including 8086, 80286, i386, i486, and AMD K6-2E+.
However, for the purposes of licensing and pricing, StackAnalyzer for 16-, 32-, and 64-bit x86s
are treated as three separate products. Likewise,
i386DX and
IntelDX4/Am486 are supported separately.
Supported compilers
- GNU C/C++ Compiler (GCC) for 32-bit flat mode or 64-bit long mode
- The formally verified CompCert compiler
- CAD-UL Tool Suite C/C++ compiler for x86 protected mode
- Intel iC-86 C/C++ Compiler (ICC) for 16-bit real mode
- Cygnus LynxOS x86 C/C++ Compiler (LynuxWorks) for 32-bit flat mode
- LLVM/Clang based C/C++ compilers
- PL/I compiler for x86 processors (protected mode)
The standard license covers one compiler of your choice.
Additional compilers can be unlocked for a surcharge.
Qualification support
Your usage of StackAnalyzer for x86 can be qualified according to ISO 26262, DO-178B/C,
and other safety standards. We offer Qualification Support Kits
that help you simplify and automate your qualification process:
- Base QSK
- Optional compiler-specific add-on QSKs for:
- GCC 4.4.5
- GCC 4.9.2
- GCC 4.9.4
Compiler-specific QSKs for other compilers can be developed on request.
Recent improvements
- Release 23.10:
- Support for the ENDBRANCH instruction
(part of the Intel Control Flow Enforcement Technology CET) which is treated like a NOP
- Improved iterative decoding
- Release 23.04:
- Improved automatic switch-table decoding
- Stack pointer guessing for flat and long mode
- Info messages about guessed/specified stack pointer and specified stack area
- Relaxed restrictions for assignments to segment registers in 32-bit flat mode and 64-bit long mode
- x86-64: Improved decoding of computed calls via function pointer arrays
- x86-64: Improved automatic decoding of two-dimensional function pointer arrays
System requirements
- Windows: 64-bit Windows 10 or 11
- Linux: 64-bit CentOS/RHEL 7 or compatible
- 4 GB of RAM (16 GB recommended)
- 4 GB of disk space
- The Linux version requires the
libxcb-*
family of libraries to be installed
- Support for macOS High Sierra 10.13 or newer is possible on request for a surcharge
Free trial
You can try StackAnalyzer for free,
on your own applications, for a period of 30 days.
Your free-trial package includes online training and tech support.
Also available