Discover any divisions by zero, out-of-bounds array accesses, erroneous pointer manipulations, and arithmetic overflows. Find data races, inconsistent locking, and other types of errors. Easily set up the analyses to run automatically as part of your build process.
Check your C or C++ code against MISRA, CWE, SEI CERT, ISO/IEC, and AUTOSAR guidelines, or your in-house coding rules. Easily toggle and customize any rule as needed. Monitor code metrics such as comment density or cyclomatic complexity, and generate reports for documentation and certification purposes.
Meet the highest levels of software assurance by compiling your application with the only C compiler that’s been formally verified to be free of miscompilation issues. All safety properties that you verify on your source code, e.g. with Astrée, are guaranteed to also hold for the generated executable.
Determine the worst-case stack usage of the tasks in your application. Find any stack overflows, or formally prove the absence thereof. Quickly identify critical sections and execution paths to optimize your code’s performance.
Compute tight upper bounds for the worst-case execution time of tasks in your binary executable. 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.
Benefit from the efficiency and safety offered by static analyses even when working with processors that are too complex to model — by combining static path analysis with timing measurements obtained from real-time instruction-level tracing.
Constantly monitor timing behavior during software development, even at the earliest stages. Identify bottlenecks when you haven’t even settled for a particular processor derivate, and measurements on physical hardware are plain impossible.
Simplify and automate your qualification process by using our Qualification Support Kits and Qualification Software Life Cycle Data Reports.