Class EvaluateCode


  • public class EvaluateCode
    extends java.lang.Object
    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.

    Usage: 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 ?).

    • Constructor Summary

      Constructors 
      Constructor Description
      EvaluateCode()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void main​(java.lang.String[] args)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EvaluateCode

        public EvaluateCode()
    • Method Detail

      • main

        public static void main​(java.lang.String[] args)