Package proguard.analysis.cpa.defaults
Class BamCpaRun<CpaT extends ConfigurableProgramAnalysis,AbstractStateT extends AbstractState,CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature>
- java.lang.Object
-
- proguard.analysis.cpa.defaults.CpaRun<BamCpa<CfaNodeT,CfaEdgeT,SignatureT>,AbstractStateT>
-
- proguard.analysis.cpa.defaults.BamCpaRun<CpaT,AbstractStateT,CfaNodeT,CfaEdgeT,SignatureT>
-
- Direct Known Subclasses:
JvmBamCpaRun
public abstract class BamCpaRun<CpaT extends ConfigurableProgramAnalysis,AbstractStateT extends AbstractState,CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature> extends CpaRun<BamCpa<CfaNodeT,CfaEdgeT,SignatureT>,AbstractStateT>
This abstract wrapper class constructs aCpaWithBamOperators
based on the intraproceduralConfigurableProgramAnalysis
, runs it, and returns theReachedSet
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BamCpaRun.Builder
A builder forBamCpaRun
.
-
Field Summary
Fields Modifier and Type Field Description protected boolean
reduceHeap
-
Fields inherited from class proguard.analysis.cpa.defaults.CpaRun
abortOperator, cpa
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BamCpaRun(AbortOperator abortOperator, int maxCallStackDepth)
Create a BAM CPA run.protected
BamCpaRun(AbortOperator abortOperator, int maxCallStackDepth, boolean reduceHeap)
Create a BAM CPA run.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description BamCache<SignatureT>
createCache()
Returns a fresh BAM cache.abstract ExpandOperator<CfaNodeT,CfaEdgeT,SignatureT>
createExpandOperator()
Returns the expand operator.abstract CpaT
createIntraproceduralCPA()
Returns the intraprocedural CPA.RebuildOperator
createRebuildOperator()
Returns the rebuild operator.abstract ReduceOperator<CfaNodeT,CfaEdgeT,SignatureT>
createReduceOperator()
Returns the reduce operator.java.util.Set<SignatureT>
getAnalyzedMethods()
abstract Cfa<CfaNodeT,CfaEdgeT,SignatureT>
getCfa()
Returns the CFA.BamCpa<CfaNodeT,CfaEdgeT,SignatureT>
getCpa()
Returns the CPA.abstract SignatureT
getMainSignature()
Returns the signature of the main procedure.int
getMaxCallStackDepth()
Returns the maximal call stack depth.-
Methods inherited from class proguard.analysis.cpa.defaults.CpaRun
createReachedSet, createWaitlist, execute, getAbortOperator, getInitialStates
-
-
-
-
Constructor Detail
-
BamCpaRun
protected BamCpaRun(AbortOperator abortOperator, int maxCallStackDepth)
Create a BAM CPA run.- Parameters:
abortOperator
- an abort operatormaxCallStackDepth
- the maximum depth of the call stack analyzed interprocedurally 0 means intraprocedural analysis < 0 means no maximum depth
-
BamCpaRun
protected BamCpaRun(AbortOperator abortOperator, int maxCallStackDepth, boolean reduceHeap)
Create a BAM CPA run.- Parameters:
abortOperator
- an abort operatormaxCallStackDepth
- the maximum depth of the call stack analyzed interprocedurally 0 means intraprocedural analysis < 0 means no maximum depthreduceHeap
- whether reduction/expansion of the heap state is performed at call/return sites
-
-
Method Detail
-
getCpa
public BamCpa<CfaNodeT,CfaEdgeT,SignatureT> getCpa()
Description copied from class:CpaRun
Returns the CPA.- Overrides:
getCpa
in classCpaRun<BamCpa<CfaNodeT extends CfaNode<CfaEdgeT,SignatureT>,CfaEdgeT extends CfaEdge<CfaNodeT>,SignatureT extends Signature>,AbstractStateT extends AbstractState>
-
createIntraproceduralCPA
public abstract CpaT createIntraproceduralCPA()
Returns the intraprocedural CPA.
-
createReduceOperator
public abstract ReduceOperator<CfaNodeT,CfaEdgeT,SignatureT> createReduceOperator()
Returns the reduce operator.
-
createExpandOperator
public abstract ExpandOperator<CfaNodeT,CfaEdgeT,SignatureT> createExpandOperator()
Returns the expand operator.
-
createRebuildOperator
public RebuildOperator createRebuildOperator()
Returns the rebuild operator.
-
createCache
public BamCache<SignatureT> createCache()
Returns a fresh BAM cache.
-
getCfa
public abstract Cfa<CfaNodeT,CfaEdgeT,SignatureT> getCfa()
Returns the CFA.
-
getMainSignature
public abstract SignatureT getMainSignature()
Returns the signature of the main procedure.
-
getMaxCallStackDepth
public int getMaxCallStackDepth()
Returns the maximal call stack depth. If negative the maximum call stack depth is unlimited.
-
getAnalyzedMethods
public java.util.Set<SignatureT> getAnalyzedMethods()
-
-