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, cyber­security properties, and component dependencies. Easily let any analysis 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, nesting depth, 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