soot.options
Class ABCOptions
java.lang.Object
soot.options.ABCOptions
public class ABCOptions
- extends Object
Option parser for Array Bound Checker.
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 |
ABCOptions
public ABCOptions(Map options)
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.