类 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.
-
嵌套类概要
嵌套类修饰符和类型类说明static classClass to configure and build aValueAnalyzer.static classProvides results for the analysis. -
方法概要
-
方法详细资料
-
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).- 参数:
mainSignature- the signature of the method to analyze.- 返回:
- the result of the analysis.
-