Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

FA Class Reference

List of all members.

Static Public Methods

void init (SootClassManager classManager, SootClass rootSootClass, SootMethod rootSootMethod)
void reset ()
void run ()
Set summarizeExprValueVariants (SootMethod sootMethod, Expr expr)
Set summarizeInstanceFieldVariants (SootField sootField)
Set summarizeLastValueVariants (SootMethod sootMethod)
Set summarizeLocalValueVariants (SootMethod sootMethod, Local local)
Set summarizeParameterValueVariants (SootMethod sootMethod, int n)
Set summarizeStaticFieldVariants (SootField sootField)
Set summarizeThisValueVariants (SootMethod sootMethod)

Static Private Methods

boolean isReachable (SootMethod sootMethod)

Static Private Attributes

SootClassManager classManager
WorkList workList
Category cat

Detailed Description

This static class provides the entry point to Object Flow analysis. All the managers and the WorkList is managed in this class.

Running the analysis with different levels of precision yields different classes of value variants, e.g., value variants indexed by allocator site, or by a single "point" index, etc.

Author:
Robby , Venkatesh Prasad Ranganath
Version:
Name:
(
Revision:
1.1.1.1
)

Definition at line 65 of file FA.java.


Member Function Documentation

void FA::init SootClassManager   classManager,
SootClass   rootSootClass,
SootMethod   rootSootMethod
[inline, static]
 

In this method we initialize the various IndexManagers which partition the data. We also, create the required sets for the static and instance variables via initClassInfo. This needs to be dynamic as we donot know before hand how the variables need to be tracked, per class or per object or any other way. We also trigger the creation of the FlowGraph here, which will create the initial work in the WorkList and then we get into an infinite loop, till the WorkList is emptied, calling doWork() on each work object.

Parameters:
classManager   the class manager that provides the soot classes comprising the system being analyzed.
rootSootClass   the class from which to start the analysis
rootSootMethod   the method from which to start the analysis

Definition at line 104 of file FA.java.

boolean FA::isReachable SootMethod   sootMethod [inline, static, private]
 

Tells whether a given method is hooked into the FlowGraph or not. In simple terms whether the method is reachable in the system.

Parameters:
sootMethod   the method which needs to be checked for reachability.
Returns:
a value indicating the reachability of the given method. true - method will be reached. false - method will not be reached.

Definition at line 140 of file FA.java.

void FA::reset   [inline, static]
 

Reset the data structures. Clear all the stored data pertaining to any analysis performed in the past.

Definition at line 149 of file FA.java.

void FA::run   [inline, static]
 

Triggers the flow in the FlowGraph.

Definition at line 164 of file FA.java.

Set FA::summarizeExprValueVariants SootMethod   sootMethod,
Expr   expr
[inline, static]
 

Iterates through each of the variants of the given method and unions the value variants produced by the given expression. Thus, the results of a (possibly polymorphic) analysis are collected into a set for the specified expression.

Parameters:
sootMethod   the method containing the given expression
expr   the expression for which the value variants need to be summarized.
Returns:
returns a set of value variants.
See also:
edu.ksu.cis.bandera.bofa.ValueVariant

Definition at line 179 of file FA.java.

Set FA::summarizeInstanceFieldVariants SootField   sootField [inline, static]
 

Iterates over all the variants of the instance variable and collects the possible values that may flow into the instance variable.

Parameters:
sootField   the instance field of the class.
Returns:
set of values that may flow into the instance variables.

Definition at line 202 of file FA.java.

Set FA::summarizeLastValueVariants SootMethod   sootMethod [inline, static]
 

Iterates through each of the variants of the given method and unions the value variants returned from the method

Parameters:
sootMethod   the method for which the return value variants are requested.
Returns:
returns a set of value variants.
See also:
edu.ksu.cis.bandera.bofa.ValueVariant

Definition at line 225 of file FA.java.

Set FA::summarizeLocalValueVariants SootMethod   sootMethod,
Local   local
[inline, static]
 

Iterates through each of the variants of the given method and unions the value variants flowing into the given locals.

Parameters:
sootMethod   the method enclosing the given expression
local   the value variants are summarized for the given local variable.
Returns:
returns a set of value variants.
See also:
edu.ksu.cis.bandera.bofa.ValueVariant

Definition at line 251 of file FA.java.

Set FA::summarizeParameterValueVariants SootMethod   sootMethod,
int   n
[inline, static]
 

Iterates through each of the variants of the given method and unions the value variants flowing into parameter number n.

Note: Not sure how error is handled when n exceeds the the number of parameters.

Parameters:
sootMethod   the method enclosing the given expression
n   the value variants are summarized for the given parameter number
Returns:
returns a set of value variants.
See also:
edu.ksu.cis.bandera.bofa.ValueVariant

Definition at line 279 of file FA.java.

Set FA::summarizeStaticFieldVariants SootField   sootField [inline, static]
 

Gathers all the values that may flow into the static field variable specified.

Parameters:
sootField   the static field for which the summary set is requested.
Returns:
set of values that may flow into the static field.

Definition at line 301 of file FA.java.

Set FA::summarizeThisValueVariants SootMethod   sootMethod [inline, static]
 

Iterates through each of the variants of the given method and unions the value variants flowing into the implicit this parameter.

Parameters:
sootMethod   the method corresponding to this parameter.
Returns:
returns a set of value variants.
See also:
edu.ksu.cis.bandera.bofa.ValueVariant

Definition at line 318 of file FA.java.


Member Data Documentation

Category FA::cat [static, private]
 

Provides logging capability through log4j.

Definition at line 83 of file FA.java.

SootClassManager FA::classManager [static, private]
 

The class manager which is queried to get information regarding various classes.

Definition at line 71 of file FA.java.

WorkList FA::workList [static, private]
 

The WorkList object used for object flow analysis.

Definition at line 77 of file FA.java.


The documentation for this class was generated from the following file:
Generated at Thu Feb 7 07:10:42 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001