Package soot.options

Class JBOptions


  • @Generated(value="Saxonica v3.0",
               comments="from soot_options.xml")
    public class JBOptions
    extends Object
    Option parser for Jimple Body Creation.
    • Method Detail

      • enabled

        public boolean enabled()
        Enabled
      • use_original_names

        public boolean use_original_names()
        Use Original Names Retain the original names for local variables when the source includes those names. Otherwise, Soot gives variables generic names based on their types.
      • preserve_source_annotations

        public boolean preserve_source_annotations()
        Preserve source-level annotations Preserves annotations of retention type SOURCE. (for everything but package and local variable annotations)
      • stabilize_local_names

        public boolean stabilize_local_names()
        Stabilize local names Make sure that local names are stable between runs. This requires re-normalizing all local names after the standard transformations, sorting them, and padding all local names with leading zeros up to the maximum number of digits in the local with the highest integer value. This can negatively impact performance. This option automatically sets "sort-locals" in "jb.lns" during the second re-normalization pass.
      • model_lambdametafactory

        public boolean model_lambdametafactory()
        Model LambdaMetafactory -- Replace dynamic invoke instructions to the LambdaMetafactory by static invokes to a synthetic LambdaMetafactory implementation.. When the asm bytecode frontend is used and this option is set to true, Soot creates an implementation of the LambdaMetafactory for each dynamic invoke and replaces the original dynamic invoke by a static invocation of the factory's bootstrap method. This allows the call-graph generation to find the lambda body reachable, i.e., call-graphs contain paths from the invocation of a functional interface to the lambda body implementing this interface. Note that this procedure is not reversed when writing-out. Therefore, written-out code will contain the created LambdaMetafactories and instrumented calls to the corresponding bootstrap methods.