Finding all Runtime Errors and Data Races in C Programs: Astrée is a parametric static analyzer designed to prove the absence of runtime errors and data races in software programs written in C. Astrée is parameterizable and can be specialized to the program under analysis –key-features to enable high analysis precision.
Astrée is a static code analyzer that proves the absence of runtime errors and invalid concurrent behaviour in safety-critical software written or generated in C.
![]() |
![]() |
Astrée primarily targets embedded applications as found in aeronautics, earth transportation, medical instrumentation, nuclear energy, and space flight. Nevertheless, it can just as well be used to analyze any structured C programs, handwritten or generated, with complex memory usages, dynamic memory allocation, and recursion.
Astrée is sound — that is, if no errors are signalled, the absence of errors has been proved.
Astrée analyses whether the C programming language is used correctly and whether there can be any runtime errors during any execution in any environment. This covers any use of C that, according to the C99 standard, has undefined behaviour or violates hardware-specific aspects.
Additionally, Astrée reports invalid concurrent behaviour, violations of user-specified programming guidelines, and various program properties relevant for functional safety.
Astrée detects any:
• division by zero,
• out-of-bounds array indexing,
• erroneous pointer manipulation and dereferencing (NULL, uninitialized and dangling pointers),
• integer and floating-point arithmetic overflow,
• read access to uninitialized variables,
• data races (read/write or write/write concurrent accesses by two threads to the same memory location without proper mutex locking),
• inconsistent locking (lock/unlock problems),
• invalid calls to operating system services (e.g. OSEK calls to Terminate-task on a task with unreleased resources),
• violation of optional user-defined assertions to prove additional runtime properties (similar to assert diagnostics),
• code it can prove to be unreachable under any circumstances.
Astrée is sound for floating-point computations and handles them precisely and safely. All possible rounding errors, and their cumulative effects, are taken into account. The same is true for −∞, +∞ and NaN values and their effects through arithmetic calculations and comparisons.
The seamlessly integrated RuleChecker lets you check your code for compliance with MISRA, CWE, ISO/IEC, and SEI CERT C coding rules. You can easily toggle individual rules and even specific aspects of certain rules. The tool can also check for various code metrics such as comment density or diplomatic complexity. Custom extensions for your own in-house coding guidelines are available on request.
Using RuleChecker in conjunction with the sound semantic analyses offered by Astrée guarantees zero false negatives and minimizes false positives on semantic-al rules. No standalone MISRA checker can offer this, and no testing environment can match the full data and path coverage provided by the static analysis.
NOTE: The CTO's of both AbsInt and Phaedsys are on the MISRA-C working Group. Phaedsys since it's inception
Astrée offers powerful annotation mechanisms for supplying external knowledge and fine-tuning the analysis precision for individual loops or data structures. Detailed messages and an intuitive GUI guide you to the exact cause of each potential runtime error. Actual errors can then be fixed, and in case of a false alarm, the analyzer can be tuned to avoid it. This allows for analyses with very few or even zero false alarms.
The analyzer can also run in batch mode for easy integration into established tool-chains. Seamless integration with TargetLink, Jenkins, and Eclipse is actively supported |
Your usage of Astrée can be qualified according to DO-178B/C, ISO 26262, IEC 61508, EN-50128, the FDA Principles of Software Validation, and other safety standards. We offer special Qualification Support Kits that simplify and automate the qualification process.
Astrée is…
Sound
|
|
Automatic
|
|
Fast
|
|
Domain Aware
|
|
Parametric
|
|
Modular
|
|
Precise
|
|
Up to date
|
|
|
|
||||
Aviation
|
minutes on a 2.8GHz 32-bit PC using 300MB of memory (and in only 50 minutes on an AMD Athlon 64 using 580MB of memory). Since then, Airbus France has been using Astrée in the development of safety-critical software for various plane series, including the A380.
|
||||
|
|
||||
|
|
||||
|
|
To download a free copy of Astrée, fill out and sign the license agreement form (PDF) and email or fax it to us.
Astrée runs under 64-bit Windows and 64-bit Linux. The trial version is technically identical to the full commercial version in every respect, but your license file will expire after 30 days.
If you have any questions before trying, email our customer support.
There’s no need to figure out Astrée by yourself or read the user manual cover to cover. Your trial begins with a free interactive Web-based training. We use Web-ex for sharing our desktop with you, and regular phone for the sound.
After just about 90 minutes, on a date and time of your own choosing, you are set to go. And it’s only then that your license file gets activated, so you still have a full 30 days left.
Don’t hesitate to contact info@phaedsys.com with any questions during your trial. You can even request additional Web-ex sessions if you need help with setting up an analysis, writing a complex annotation, or investigating a tricky part of your code.
All commercial licenses also include 180 days of free support and updates. Major new releases are published twice a year, which means you’ll receive at least one update for free.
The one-time fee for a perpetual license depends on the number of installations and the number of analyses running in parallel. Qualification Support Kits are available at a fraction of the cost. You can also rent the tool, or commission us to analyze your code for you.
Email us for a quote tailored to your personal requirements
Further Reading |
Quick Facts |