public class AnalysisOptions extends Object
Modifier and Type | Class and Description |
---|---|
static class |
AnalysisOptions.ReflectionOptions
options for handling reflection during call graph construction
|
Constructor and Description |
---|
AnalysisOptions() |
AnalysisOptions(AnalysisScope scope,
Iterable<? extends Entrypoint> e) |
Modifier and Type | Method and Description |
---|---|
AnalysisScope |
getAnalysisScope() |
ClassTargetSelector |
getClassTargetSelector() |
Iterable<? extends Entrypoint> |
getEntrypoints()
TODO: this really should go away.
|
boolean |
getHandleStaticInit()
Should call graph construction handle possible invocations of static initializer methods?
|
int |
getMaxEvalBetweenTopo() |
long |
getMaxNumberOfNodes() |
MethodTargetSelector |
getMethodTargetSelector() |
int |
getMinEquationsForTopSort() |
AnalysisOptions.ReflectionOptions |
getReflectionOptions()
Should call graph construction attempt to handle reflection via detection of flows to casts, analysis of string constant
parameters to reflective methods, etc.?
|
SSAOptions |
getSSAOptions() |
double |
getTopologicalGrowthFactor() |
boolean |
getTraceStringConstants()
Should analysis try to understand the results of string constants flowing to a + operator? Note that this option does not apply
to Java bytecode analysis, since the + operators have been compiled away for that.
|
boolean |
getUseConstantSpecificKeys()
Use distinct instance keys for distinct string constants?
|
boolean |
getUseLexicalScopingForGlobals()
Should global variables be considered lexically-scoped from the root node?
|
boolean |
getUseStacksForLexicalScoping()
Should analysis of lexical scoping consider call stacks?
|
void |
setAnalysisScope(AnalysisScope analysisScope) |
void |
setEntrypoints(Iterable<? extends Entrypoint> entrypoints) |
void |
setHandleStaticInit(boolean handleStaticInit)
Should call graph construction handle possible invocations of static initializer methods?
|
void |
setMaxEvalBetweenTopo(int i) |
void |
setMaxNumberOfNodes(long maxNumberOfNodes) |
void |
setMinEquationsForTopSort(int i) |
void |
setReflectionOptions(AnalysisOptions.ReflectionOptions reflectionOptions)
Should call graph construction attempt to handle reflection via detection of flows to casts, analysis of string constant
parameters to reflective methods, etc.?
|
void |
setSelector(ClassTargetSelector x)
install a class target selector
|
void |
setSelector(MethodTargetSelector x)
install a method target selector
|
void |
setSSAOptions(SSAOptions ssaOptions) |
void |
setTopologicalGrowthFactor(double d) |
void |
setTraceStringConstants(boolean v)
Should analysis try to understand the results of string constants flowing to a + operator? Note that this option does not apply
to Java bytecode analysis, since the + operators have been compiled away for that.
|
void |
setUseConstantSpecificKeys(boolean useConstantSpecificKeys)
Use distinct instance keys for distinct string constants?
|
void |
setUseLexicalScopingForGlobals(boolean v)
Should global variables be considered lexically-scoped from the root node?
|
void |
setUseStacksForLexicalScoping(boolean v)
Should analysis of lexical scoping consider call stacks?
|
public AnalysisOptions()
public AnalysisOptions(AnalysisScope scope, Iterable<? extends Entrypoint> e)
public AnalysisScope getAnalysisScope()
public void setAnalysisScope(AnalysisScope analysisScope)
public Iterable<? extends Entrypoint> getEntrypoints()
public void setEntrypoints(Iterable<? extends Entrypoint> entrypoints)
public long getMaxNumberOfNodes()
public void setMaxNumberOfNodes(long maxNumberOfNodes)
public MethodTargetSelector getMethodTargetSelector()
public ClassTargetSelector getClassTargetSelector()
public void setSelector(MethodTargetSelector x)
x
- an object which controls the policy for selecting the target at a call sitepublic void setSelector(ClassTargetSelector x)
x
- an object which controls the policy for selecting the allocated object at a new sitepublic int getMinEquationsForTopSort()
public void setMinEquationsForTopSort(int i)
i
- the mininum number of equations that the pointer analysis system must contain before the solver will try to
topologically sorepublic int getMaxEvalBetweenTopo()
public double getTopologicalGrowthFactor()
public void setMaxEvalBetweenTopo(int i)
i
- the maximum number of evaluations that the pointer analysis solver will perform before topologically resorting the
systempublic void setTopologicalGrowthFactor(double d)
d
- a fraction x s.t. the solver will resort the system when it grows by a factor of xpublic SSAOptions getSSAOptions()
public void setSSAOptions(SSAOptions ssaOptions)
ssaOptions
- options governing SSA constructionpublic boolean getUseConstantSpecificKeys()
public void setUseConstantSpecificKeys(boolean useConstantSpecificKeys)
public boolean getUseStacksForLexicalScoping()
public void setUseStacksForLexicalScoping(boolean v)
public boolean getUseLexicalScopingForGlobals()
public void setUseLexicalScopingForGlobals(boolean v)
public void setTraceStringConstants(boolean v)
public boolean getTraceStringConstants()
public AnalysisOptions.ReflectionOptions getReflectionOptions()
public void setReflectionOptions(AnalysisOptions.ReflectionOptions reflectionOptions)
public boolean getHandleStaticInit()
public void setHandleStaticInit(boolean handleStaticInit)