Make your code safe. Every step of the way.

Check your C or C++ code for errors with Astrée.

Discover any divisions by zero, out-of-bounds array accesses, erroneous pointer manipu­lations, and arith­metic overflows. Find data races, in­consistent locking, Spectre vulnerabi­lities, and other types of errors. Set up custom analyses of the control flow, data flow, signal flow, and component dependencies. Easily let any or all analyses run automatically as part of your build process.

Astrée — static runtime error analysis
Verify coding guidelines with RuleChecker.

Check your C or C++ code against MISRA, CWE, SEI CERT, ISO/IEC, and AUTOSAR guide­lines, or your in-house coding rules. Easily toggle or configure any rule as needed. Monitor code metrics such as com­ment den­sity or cyclomatic com­plexity, and generate customizable reports for documentation and certification purposes.

RuleChecker — automatic checks for adherence to coding standards
Compile your code with CompCert.

Meet the highest levels of software assurance by compiling your appli­cation with the only C compiler that’s been formally verified to be free of mis­compilation issues. All safety properties that you verify on your source code, e.g. using Astrée, are guaranteed to also hold for the generated executable.

CompCert — verified compilation
Check your stack usage with StackAnalyzer.

Determine the worst-case stack usage of the tasks in your ap­pli­ca­tion. Find any stack overflows, or formally prove the absence thereof. Quickly identify critical sections and execution paths to optimize your code’s performance.

StackAnalyzer — static stack-usage analysis
Analyze the execution time with aiT, TimeWeaver or TimingProfiler.

Use aiT to compute tight and safe upper bounds for the worst-​case execution time of tasks in your binary ex­e­cut­able. No testing or measuring required — the static analysis guarantees that the computed bounds hold for every possible execution scenario, any combination of inputs, all cache and pipeline states.

aiT — static timing analysis

Benefit from the efficiency and safety offered by static analyses even when working with processors that are too complex to model — by using TimeWeaver that combines static path analysis with timing measurements obtained from real-time instruction-level tracing.

TimeWeaver — hybrid WCET analysis based on execution traces

Let TimingProfiler help you moni­tor timing behavior at the earliest stages of software devel­opment, when you haven’t even decided on a specific processor derivate, and measurements on physical hardware are plain impossible.

TimingProfiler — exploring timing effects at early design stages
Qualify for ISO 26262, DO-178B/C, IEC-61508, EN-50128

Simplify and automate your qualification process by using our Qualification Support Kits. Easily start the qualification tests directly from within the GUI, or set them up to run automa­tically as part of your build process.

Qualification support