public class EvaluateCode
This sample application illustrates how to evaluate the bytecode of a method
to get information about its control flow and data flow. In this example,
it prints out the results of the analysis for each method in the input.
For each instruction, it prints out the possible (abstract, symbolic)
values on the stack and in the local variables, after execution.
You can select the precision of the analysis.
java proguard.examples.EvaluateCode [precision] input.jar [classnamefilter [methodnamefilter]]
where the precision option can be one of:
-basic for basic control flow analysis and data flow analysis.
-particular for more precise numerical evaluation.
-range for evaluation with numeric ranges.
-identity for symbolic numerical evaluation.
-tracing for evaluation with reference types, tracing their origins.
-typed for evaluation with more precise reference types.
-array for evaluation with primitive arrays.
-detailedarray for evaluation with more precise primitive arrays.
The optional class name filter and method name filter can have wildcards (*, **, and ?).