ValueAnalyzer is a static program analyzer for value analysis. It is particularly
useful for verifying the absence of illegal accesses to an embedded software system
from within third-party modules provided as object code.
The challenge
When developing complex safety-critical software systems, it is
not unusual for the developer to integrate third-party object code in it.
However, it is usually difficult to verify whether such code only does what
it is supposed to do and nothing else.
Possible problems with third-party code are:
- it might read variables it may not read
- it might write variables it may not write
- it might call functions it may not call
Common reasons for such illegal accesses to your system by third-party code are:
- programming errors (e.g., an iterator exceeds an array limit)
- non-compliance with specifications
- compiler or linker errors
Illegal accesses may cause problems in the field. Additionally, license
or liability issues can arise.
Lastly, development standards such as DO-178B require unreachable code
to be eliminated. Since the required testing effort is high, it is desirable
to remove unreachable code as early as possible.
The solution
ValueAnalyzer provides the solution to these problems. It statically analyzes
object code and reports any violation of your spec.
Features
- Interactive exploration of value analysis results:
contents of registers and memory cells are shown before/after instruction
execution per context.
- Comprehensive reports on:
- all memory accesses per function
- all calls to user-selected functions
- all accesses to user-selected memory areas
- register and memory contents at the entry/exit of selected functions
- Validation of static user-defined assertions, such as:
- assertions that a user-selected instruction or function does (not) access a user-selected
memory area
- global assertions on user-selected memory areas (is read-only, is
write-only, is inaccessible…)
- Detection of unreachable code. Code reported as unreachable
is guaranteed to be unreachable for all possible inputs and each program
execution under any circumstances.
- Seamless integration with other analysis tools from AbsInt
(for example, StackAnalyzer for stack usage analysis) in a single
intuitive user interface called ał.
Your benefits
- The analysis is fully automatic and valid for all inputs.
No input patterns need to be provided.
- The analysis performed by ValueAnalyzer is conservative, i.e. the results are safe.
All illegal accesses that are present will also be reported.
- Supplied third-party software can be analyzed right away.
It does not have to be integrated on the ECU.
- No debug information is required. The results are not affected by
possible bugs in the debug output.
Supported targets
ValueAnalyzer is available for a growing number of target processors and compilers.
For further information about ValueAnalyzer, please contact us.