StackAnalyzer for x86 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.
Key benefits
- Detailed and precise information on stack usage by application tasks.
- Stack analysis for all hierarchy levels: routines, basic blocks, assembly instructions.
- Control-flow reconstruction directly from binary code.
- Freely selectable entry points for the analysis.
- Easy recognition of critical program sections thanks to 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.
Supported compilers
- GNU C compiler (GCC)
- CompCert
- Intel iC-86 C compiler (ICC)
- Cygnus LynxOS x86 C compiler (LynuxWorks)
The standard license only covers one compiler of your choice. Additional compilers can be unlocked for a surcharge.
Architecture variants and extensions
The supported instructions sets are:
- 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.
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 newer
- 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