Class JvmMemoryLocationBamCpaRun<CpaT extends ConfigurableProgramAnalysis,AbstractStateT extends LatticeAbstractState<AbstractStateT>>
- java.lang.Object
-
- proguard.analysis.cpa.defaults.CpaRun<CpaT,AbstractStateT>
-
- proguard.analysis.cpa.defaults.SequentialCpaRun<JvmMemoryLocationCpa<AbstractStateT>,JvmMemoryLocationAbstractState<?>,BamCpaRun<CpaT,? extends ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>,JvmCfaNode,JvmCfaEdge,MethodSignature>>
-
- proguard.analysis.cpa.jvm.domain.memory.JvmMemoryLocationBamCpaRun<CpaT,AbstractStateT>
-
- Type Parameters:
AbstractStateT
- The type of the values of the traced analysis.
- All Implemented Interfaces:
TraceExtractor
- Direct Known Subclasses:
JvmTaintMemoryLocationBamCpaRun
public abstract class JvmMemoryLocationBamCpaRun<CpaT extends ConfigurableProgramAnalysis,AbstractStateT extends LatticeAbstractState<AbstractStateT>> extends SequentialCpaRun<JvmMemoryLocationCpa<AbstractStateT>,JvmMemoryLocationAbstractState<?>,BamCpaRun<CpaT,? extends ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>,JvmCfaNode,JvmCfaEdge,MethodSignature>> implements TraceExtractor
This abstract analyzer runs theJvmMemoryLocationCpa
and returns theReachedSet
. The reached set contains a flattened forest of memory location traces. Their roots are the endpoints. For each root a tree of sourceJvmMemoryLocation
s is constructed. The threshold defines the minimal value above which theAbstractState
should be in order to be included into the continuation of the trace.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class proguard.analysis.cpa.defaults.SequentialCpaRun
SequentialCpaRun.PreviousRunDurationReceiver
-
-
Field Summary
Fields Modifier and Type Field Description protected AbstractStateT
threshold
-
Fields inherited from class proguard.analysis.cpa.defaults.SequentialCpaRun
inputCpaRun, inputReachedSet, outputReachedSet
-
Fields inherited from class proguard.analysis.cpa.defaults.CpaRun
abortOperator, cpa
-
-
Constructor Summary
Constructors Constructor Description JvmMemoryLocationBamCpaRun(BamCpaRun<CpaT,JvmAbstractState<AbstractStateT>,JvmCfaNode,JvmCfaEdge,MethodSignature> inputCpaRun, AbstractStateT threshold)
Create a CPA run.JvmMemoryLocationBamCpaRun(BamCpaRun<CpaT,JvmAbstractState<AbstractStateT>,JvmCfaNode,JvmCfaEdge,MethodSignature> inputCpaRun, AbstractStateT threshold, AbortOperator abortOperator, java.util.Map<Call,java.util.Set<JvmMemoryLocation>> extraTaintPropagationLocations)
Create a CPA run.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ReachedSet
createReachedSet()
Returns an emptyReachedSet
.protected Waitlist
createWaitlist()
Returns an emptyWaitlist
.ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,JvmMemoryLocationAbstractState<?>,MethodSignature>
getOutputReachedSet()
Returns the reached set of a trace extracting memory location CPA.-
Methods inherited from class proguard.analysis.cpa.defaults.SequentialCpaRun
execute, getInputCpaRun
-
Methods inherited from class proguard.analysis.cpa.defaults.CpaRun
getAbortOperator, getCpa, getInitialStates
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface proguard.analysis.cpa.jvm.domain.memory.TraceExtractor
extractLinearTraces, getEndPoints, removeDuplicateProgramLocations, traceExtractionIteration
-
-
-
-
Field Detail
-
threshold
protected final AbstractStateT extends LatticeAbstractState<AbstractStateT> threshold
-
-
Constructor Detail
-
JvmMemoryLocationBamCpaRun
public JvmMemoryLocationBamCpaRun(BamCpaRun<CpaT,JvmAbstractState<AbstractStateT>,JvmCfaNode,JvmCfaEdge,MethodSignature> inputCpaRun, AbstractStateT threshold)
Create a CPA run.- Parameters:
inputCpaRun
- an unwrapped traced CPA BAM runthreshold
- a cut-off threshold
-
JvmMemoryLocationBamCpaRun
public JvmMemoryLocationBamCpaRun(BamCpaRun<CpaT,JvmAbstractState<AbstractStateT>,JvmCfaNode,JvmCfaEdge,MethodSignature> inputCpaRun, AbstractStateT threshold, AbortOperator abortOperator, java.util.Map<Call,java.util.Set<JvmMemoryLocation>> extraTaintPropagationLocations)
Create a CPA run.- Parameters:
inputCpaRun
- a traced CPA BAM run wrapped with an ARG computationthreshold
- a cut-off thresholdabortOperator
- an abort operator
-
-
Method Detail
-
createReachedSet
public ReachedSet createReachedSet()
Description copied from class:CpaRun
Returns an emptyReachedSet
.- Overrides:
createReachedSet
in classCpaRun<JvmMemoryLocationCpa<AbstractStateT extends LatticeAbstractState<AbstractStateT>>,JvmMemoryLocationAbstractState<?>>
-
createWaitlist
protected Waitlist createWaitlist()
Description copied from class:CpaRun
Returns an emptyWaitlist
.- Overrides:
createWaitlist
in classCpaRun<JvmMemoryLocationCpa<AbstractStateT extends LatticeAbstractState<AbstractStateT>>,JvmMemoryLocationAbstractState<?>>
-
getOutputReachedSet
public ProgramLocationDependentReachedSet<JvmCfaNode,JvmCfaEdge,JvmMemoryLocationAbstractState<?>,MethodSignature> getOutputReachedSet()
Description copied from interface:TraceExtractor
Returns the reached set of a trace extracting memory location CPA.- Specified by:
getOutputReachedSet
in interfaceTraceExtractor
- Overrides:
getOutputReachedSet
in classSequentialCpaRun<JvmMemoryLocationCpa<AbstractStateT extends LatticeAbstractState<AbstractStateT>>,JvmMemoryLocationAbstractState<?>,BamCpaRun<CpaT extends ConfigurableProgramAnalysis,? extends ProgramLocationDependent<JvmCfaNode,JvmCfaEdge,MethodSignature>,JvmCfaNode,JvmCfaEdge,MethodSignature>>
-
-