Class ValueAnalyzer
The analyzer can be configured in several ways via ValueAnalyzer.Builder.
The analyze(MethodSignature) method can be called to perform the
configured analysis starting from a given method in the program.
The same analyzer can be used to analyze several methods in sequence, in this case the
analysis BamCache will be shared between the sequential analyses making them potentially
avoid recalculating the results when a method is called again with known parameters.
This might sometimes not be the desired behavior, since the cache might take a lot of memory.
If this is a concern rebuilding the ValueAnalyzer from the original ValueAnalyzer.Builder will provide a fresh cache.
ValueAnalyzer is currently not designed to be thread safe. Among the known reasons,
the currently available BamCaches are not designed for concurrent access and a different
ExecutingInvocationUnit (used by JvmValueTransferRelation) should be used by each
thread.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classClass to configure and build aValueAnalyzer.static classProvides results for the analysis. -
Method Summary
Modifier and TypeMethodDescriptionanalyze(MethodSignature mainSignature) Run the value analysis on the given method.
-
Method Details
-
analyze
Run the value analysis on the given method.The results are not intended as just for the last execution, but as a view on the full analysis' cache.
Since the cache at the moment has no capability to remember the last execution, the result will change as the cache changes (i.e., after calling this again on a new method, old instances of
ValueAnalyzer.ValueAnalysisResultwill also be updated).- Parameters:
mainSignature- the signature of the method to analyze.- Returns:
- the result of the analysis.
-