soot.options
Class ABCOptions

java.lang.Object
  extended by soot.options.ABCOptions

public class ABCOptions
extends Object

Option parser for Array Bound Checker.


Constructor Summary
ABCOptions(Map options)
           
 
Method Summary
 boolean add_color_tags()
          Add Color Tags -- Add color tags to results of array bound check analysis..
 boolean enabled()
          Enabled -- .
 boolean profiling()
          Profiling -- Profile the results of array bounds check analysis..
 boolean with_all()
          With All -- .
 boolean with_arrayref()
          With Array References -- .
 boolean with_classfield()
          With Class Field -- .
 boolean with_cse()
          With Common Sub-expressions -- .
 boolean with_fieldref()
          With Field References -- .
 boolean with_rectarray()
          With Rectangular Array -- .
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ABCOptions

public ABCOptions(Map options)
Method Detail

enabled

public boolean enabled()
Enabled -- .


with_all

public boolean with_all()
With All -- . Setting the With All option to true is equivalent to setting each of With CSE, With Array Ref, With Field Ref, With Class Field, and With Rectangular Array to true.


with_cse

public boolean with_cse()
With Common Sub-expressions -- . The analysis will consider common subexpressions. For example, consider the situation where r1 is assigned a*b; later, r2 is assigned a*b, where neither a nor b have changed between the two statements. The analysis can conclude that r2 has the same value as r1. Experiments show that this option can improve the result slightly.


with_arrayref

public boolean with_arrayref()
With Array References -- . With this option enabled, array references can be considered as common subexpressions; however, we are more conservative when writing into an array, because array objects may be aliased. We also assume that the application is single-threaded or that the array references occur in a synchronized block. That is, we assume that an array element may not be changed by other threads between two array references.


with_fieldref

public boolean with_fieldref()
With Field References -- . The analysis treats field references (static and instance) as common subexpressions; however, we are more conservative when writing to a field, because the base of the field reference may be aliased. We also assume that the application is single-threaded or that the field references occur in a synchronized block. That is, we assume that a field may not be changed by other threads between two field references.


with_classfield

public boolean with_classfield()
With Class Field -- . This option makes the analysis work on the class level. The algorithm analyzes final or private class fields first. It can recognize the fields that hold array objects of constant length. In an application using lots of array fields, this option can improve the analysis results dramatically.


with_rectarray

public boolean with_rectarray()
With Rectangular Array -- . This option is used together with wjap.ra to make Soot run the whole-program analysis for rectangular array objects. This analysis is based on the call graph, and it usually takes a long time. If the application uses rectangular arrays, these options can improve the analysis result.


profiling

public boolean profiling()
Profiling -- Profile the results of array bounds check analysis.. Profile the results of array bounds check analysis. The inserted profiling code assumes the existence of a MultiCounter class implementing the methods invoked. For details, see the ArrayBoundsChecker source code.


add_color_tags

public boolean add_color_tags()
Add Color Tags -- Add color tags to results of array bound check analysis.. Add color tags to the results of the array bounds check analysis.