All Classes Interface Summary Class Summary Enum Summary Exception Summary
| Class |
Description |
| AbstractState<A extends AbstractState<A,H,V>,H extends HeapDomain<H>,V extends ValueDomain<V>> |
An abstract state of the analysis, composed by a heap state modeling the
memory layout and a value state modeling values of program variables and
memory locations.
|
| AccessChild |
An expression that accesses a memory location that is a child of
another one, that is, the former is reachable from the latter.
|
| AccessGlobal |
|
| AccessInstanceGlobal |
|
| Addition |
An expression modeling the addition operation (+).
|
| AdjacencyMatrix<N extends Node<N,E,G>,E extends Edge<N,E,G>,G extends Graph<G,N,E>> |
An adjacency matrix for a graph that has Nodes as nodes and
Edges as edges.
|
| AdjacencyMatrix.NodeEdges<N extends Node<N,E,G>,E extends Edge<N,E,G>,G extends Graph<G,N,E>> |
Utility class for representing the edges tied to a node, split into two
sets: ingoing and outgoing.
|
| AnalysisException |
A generic Exception that indicates that something has gone wrong
during the analysis.
|
| AnalysisExecutionException |
A generic RuntimeException that indicates that something has gone
wrong during the analysis.
|
| AnalysisSetupException |
|
| AnalysisState<A extends AbstractState<A,H,V>,H extends HeapDomain<H>,V extends ValueDomain<V>> |
The abstract analysis state at a given program point.
|
| And |
An expression modeling the logical conjunction (&& or and).
|
| Annotation |
A single annotation.
|
| AnnotationMatcher |
Interface for an annotation matcher.
|
| AnnotationMember |
A member of an annotation.
|
| Annotations |
A collection of annotations.
|
| AnnotationValue |
An annotation value.
|
| ArrayAnnotationValue |
An array annotation value.
|
| ArrayType |
Array type interface.
|
| Assignment |
A statement assigning the result of an expression to an assignable
expression.
|
| BaseCallGraph |
An instance of CallGraph that provides the basic mechanism to resolve
UnresolvedCalls.
The graph underlying this call graph is built lazily through each call to
resolve: querying for information about the graph before the completion of
the analysis might lead to wrong results.
|
| BaseHeapDomain<H extends BaseHeapDomain<H>> |
|
| BaseHeapDomain.Rewriter |
|
| BaseInferredValue<T extends BaseInferredValue<T>> |
|
| BaseLattice<L extends BaseLattice<L>> |
A base implementation of the Lattice interface, handling base cases
of the methods exposed by that interface.
|
| BaseNonRelationalValueDomain<T extends BaseNonRelationalValueDomain<T>> |
|
| BasicAnnotationMatcher |
An annotation matcher based on the annotation name.
|
| BasicAnnotationValue |
Abstract class representing a basic annotation value, namely annotation
values that can be inside an ArrayAnnotationValue.
|
| BinaryExpression |
A binary expression.
|
| BinaryExpression |
|
| BinaryNativeCall |
|
| BinaryOperator |
|
| BitExternalSet<T> |
An ExternalSet where the indexes of the elements included in the set
are stored through bit vectors, enabling better memory efficiency.
|
| BoolAnnotationValue |
A Boolean annotation value.
|
| BooleanType |
Boolean type interface.
|
| BoolType |
|
| ByteAnnotationValue |
A byte annotation value.
|
| Caches |
|
| Call |
A call to another procedure.
|
| CallGraph |
A callgraph of the program to analyze, that knows how to resolve dynamic
targets of UnresolvedCalls.
|
| CallGraphConstructionException |
An exception that occurred while building the callgraph.
|
| CallGraphEdge |
|
| CallGraphNode |
|
| CallResolutionException |
|
| CFG |
A control flow graph, that has Statements as nodes and Edges
as edges.
Note that this class does not implement Object.equals(Object) nor
Object.hashCode() since all cfgs are unique.
|
| CFGCall |
A call to one or more of the CFGs under analysis.
|
| CFGDescriptor |
A descriptor of a CFG, containing the debug informations (source file, line,
column) as well as metadata.
|
| CFGDescriptorWarning |
A warning reported by LiSA on the descriptor of one of the CFGs under
analysis.
|
| CFGWarning |
A warning reported by LiSA on one of the CFGs under analysis.
|
| CFGWithAnalysisResults<A extends AbstractState<A,H,V>,H extends HeapDomain<H>,V extends ValueDomain<V>> |
A control flow graph, that has Statements as nodes and Edges
as edges.
|
| CharAnnotationValue |
A char annotation value.
|
| Check<T> |
A check that inspects the syntactic structure of the program to report
warnings.
|
| ChecksExecutor |
Utility class that handles the execution of Checks.
|
| CheckTool |
An auxiliary tool that can be used by checks during their execution.
|
| CheckToolWithAnalysisResults<A extends AbstractState<A,H,V>,H extends HeapDomain<H>,V extends ValueDomain<V>> |
An extension of CheckTool that also contains the results of the
fixpoint computation.
|
| CodeElement |
Interface for code elements that have to provide information about the
location where they appear.
|
| CodeLocation |
A generic interface for representing the location of an element in the source
code (e.g., source/line/column, source/offset, ...).
|
| CodeMember |
A program member that has code within it.
|
| CollectionsDiffBuilder<T> |
An utility class that can compute the difference between two collections
containing the same object types.
|
| CollectionUtilities |
Utility methods for operations on Collections.
|
| CompilationUnit |
A compilation unit of the program to analyze.
|
| CompilationUnitAnnotationValue |
A compilation unit annotation value.
|
| Concat |
An expression modeling the string contains operation.
|
| ConcurrentFIFOWorkingSet<E> |
A first-in, first-out working set.
|
| ConcurrentLIFOWorkingSet<E> |
A last-in, first-out working set.
|
| Constant |
A constant value.
|
| Contains |
An expression modeling the string contains operation.
|
| ControlFlowExtractor |
|
| ControlFlowStructure |
A control flow structure of a CFG.
|
| Counter |
A counter that logs to a given logger while progressing during the count.
|
| DataflowDomain<D extends DataflowDomain<D,E>,E extends DataflowElement<D,E>> |
|
| DataflowElement<D extends DataflowDomain<D,E>,E extends DataflowElement<D,E>> |
An element of the dataflow domain, that contains a collection of
Identifiers in its definition.
|
| DefiniteForwardDataflowDomain<E extends DataflowElement<DefiniteForwardDataflowDomain<E>,E>> |
|
| Division |
An expression modeling the division operation (/).
|
| DomainRepresentation |
|
| Dominators<G extends Graph<G,N,E>,N extends Node<N,E,G>,E extends Edge<N,E,G>> |
An algorithms that evaluates the dominators of each node in a graph.
|
| DotCFG |
|
| DotGraph<N extends Node<N,E,G>,E extends Edge<N,E,G>,G extends Graph<G,N,E>> |
An auxiliary graph built from a Graph that can be dumped in dot
format, together with a legend.
|
| DoubleAnnotationValue |
A double annotation value.
|
| Edge |
An edge of a control flow graph, connecting two statements.
|
| Edge<N extends Node<N,E,G>,E extends Edge<N,E,G>,G extends Graph<G,N,E>> |
|
| EndsWith |
An expression modeling the string endsWith operation.
|
| EnumAnnotationValue |
An enum annotation value.
|
| Environment<M extends Environment<M,E,T,V>,E extends SymbolicExpression,T extends NonRelationalElement<T,E,M>,V extends Lattice<V>> |
|
| Equal |
An expression modeling the equality test (==).
|
| Equals |
An expression modeling the string equals operation.
|
| Expression |
An expression that is part of a statement of the program.
|
| ExpressionSet<T extends SymbolicExpression> |
A set lattice containing a set of symbolic expressions.
|
| ExpressionVisitor<T> |
|
| ExpressionWarning |
A warning reported by LiSA on an expression.
|
| ExternalSet<T> |
A set of elements that are stored externally from this set.
|
| ExternalSetCache<T> |
A cache for creating ExternalSets of the elements contained in this
cache.
|
| FalseEdge |
An edge connecting two statements, that is traversed when the condition
expressed in the source state does not hold.
|
| FalseLiteral |
A Literal representing the false boolean value.
|
| FIFOWorkingSet<E> |
A first-in, first-out working set.
|
| FileManager |
A file manager that provides standard functionalities for communicating with
the file system.
|
| FileManager.WriteAction |
A functional interface for a write operation that can throw
IOExceptions.
|
| Fixpoint<G extends Graph<G,N,E>,N extends Node<N,E,G>,E extends Edge<N,E,G>,T> |
|
| Fixpoint.FixpointImplementation<N,E,T> |
Concrete implementation of the general methods used by a fixpoint
algorithm to perform.
|
| FixpointException |
An exception raised during the fixpoint computation.
|
| Float32 |
|
| Float32Literal |
A 32-bit signed Literal representing a constant non-integral value.
|
| Float64 |
|
| Float64Literal |
A 64-bit signed Literal representing a constant non-integral value.
|
| FloatAnnotationValue |
A float annotation value.
|
| FunctionalLattice<F extends FunctionalLattice<F,K,V>,K,V extends Lattice<V>> |
A generic functional abstract domain that performs the functional lifting of
the lattice on the elements of the co-domain.
|
| FunctionalLattice.FunctionalLift<V extends Lattice<V>> |
Interface for the lift of lattice elements.
|
| FunctionalLattice.KeyFunctionalLift<K> |
Interface for the left of key sets.
|
| Global |
A global variable, scoped by its container.
|
| GlobalWarning |
A warning reported by LiSA on one of the Globals under analysis.
|
| Graph<G extends Graph<G,N,E>,N extends Node<N,E,G>,E extends Edge<N,E,G>> |
A generic graph, backed by an AdjacencyMatrix.
Note that this class does not define Object.equals(Object) nor
Object.hashCode(), since we leave the decision to be unique instances to
implementers.
|
| GraphVisitor<G extends Graph<G,N,E>,N extends Node<N,E,G>,E extends Edge<N,E,G>,V> |
|
| GreaterOrEqual |
An expression modeling the greater or equal operation (>=).
|
| GreaterThan |
An expression modeling the greater than operation (>).
|
| HeapAllocation |
An allocation of a memory location.
|
| HeapDereference |
A heap dereference expression.
|
| HeapDomain<D extends HeapDomain<D>> |
A semantic domain that can evaluate the semantic of statements that operate
on heap locations, and not on concrete values.
|
| HeapEnvironment<T extends NonRelationalHeapDomain<T>> |
|
| HeapExpression |
A symbolic expression that identifies a location in the program's heap.
|
| HeapLocation |
An identifier of a synthetic program variable that represents a resolved
memory location.
|
| HeapReference |
A reference to a memory location, identified by its name.
|
| HeapSemanticOperation |
A semantic operation on the heap state of the program, that provides a
substitution of the available identifiers.
|
| HeapSemanticOperation.HeapReplacement |
A replacement between Identifiers caused by a change in the heap
abstraction.
|
| HybridCall |
|
| Identifier |
An identifier of a program variable, representing either a program variable
(as an instance of Variable), or a resolved memory location (as an
instance of HeapLocation).
|
| IfThenElse |
|
| IndexOf |
An expression modeling the string indexOf operation.
|
| InferenceSystem<T extends InferredValue<T>> |
An inference system that model standard derivation systems (e.g., types
systems, small step semantics, big step semantics, ...).
|
| InferredValue<T extends InferredValue<T>> |
|
| InferredValue.InferredPair<T extends InferredValue<T>> |
A pair of instances of InferredValue, representing the result of
an evaluation in the form of
<inferred value, new execution state>.
|
| InferredValue.InferredPairRepresentation |
|
| Int16 |
|
| Int16Literal |
A 16-bit signed Literal representing a constant integral value.
|
| Int32 |
|
| Int32Literal |
A 32-bit signed Literal representing a constant integral value.
|
| Int64 |
|
| Int64Literal |
A 64-bit signed Literal representing a constant integral value.
|
| Int8 |
|
| Int8Literal |
An 8-bit signed Literal representing a constant integral value.
|
| IntAnnotationValue |
An integer annotation value.
|
| InterproceduralAnalysis<A extends AbstractState<A,H,V>,H extends HeapDomain<H>,V extends ValueDomain<V>> |
The definition of interprocedural analyses.
|
| InterproceduralAnalysisException |
An exception that occurred while performing an interprocedural analysis.
|
| IntInterval |
An interval with integer bounds.
|
| InverseSetLattice<S extends InverseSetLattice<S,E>,E> |
A generic inverse set lattice containing a set of elements.
|
| IterableArray<E> |
An iterable over an array of elements.
|
| IterationLogger |
An utility class that allows automatic logging while iterating over elements
of a collection, stream or array.
|
| JsonReport |
A report of an executed analysis that can be dumped in json format, and that
can be read from a json file.
|
| JsonReport.JsonWarning |
A warning that is ready to dump into a JsonReport.
|
| JsonReportComparer |
A class providing capabilities for finding differences between two
JsonReports.
|
| JsonReportComparer.DiffReporter |
An object that provides callbacks for reporting differences when
comparing JsonReports.
|
| JsonReportComparer.REPORT_TYPE |
An enumeration defining the different type of reports that can be issued.
|
| JsonReportComparer.REPORTED_COMPONENT |
An enumeration defining the different components of a JsonReport,
in order to distinguish which one of them caused a difference being
reported.
|
| Lattice<L extends Lattice<L>> |
An interface for elements that follow a lattice structure.
|
| Length |
An expression modeling the string length operation.
|
| LessOrEqual |
An expression modeling the less or equal operation (<=).
|
| LessThan |
An expression modeling the less than operation (<).
|
| LIFOWorkingSet<E> |
A last-in, first-out working set.
|
| Literal<T> |
A literal, representing a constant value.
|
| LongAnnotationValue |
A long annotation value.
|
| Loop |
|
| MapRepresentation |
|
| MathNumber |
A wrapper around BigDecimal to represent the mathematical concept of
a number, that can be also plus or minus infinity, in a convenient way.
|
| MemoryPointer |
A memory pointer to a heap location.
|
| MetaVariableCreator |
Objects implementing this interface will produce a meta-variable to represent
the value that they produce on the stack during the computation of their
semantic.
|
| Multiplication |
An expression modeling the multiplication operation (*).
|
| NativeCall |
A native call, modeling the usage of one of the native constructs of the
language.
|
| NativeCFG |
A native cfg, representing a cfg that is usually provided by the runtime of
the programming language.
|
| Negation |
An expression modeling the numerical negation operation (-).
|
| Node<N extends Node<N,E,G>,E extends Edge<N,E,G>,G extends Graph<G,N,E>> |
|
| NonRelationalDomain<T extends NonRelationalDomain<T,E,F>,E extends SymbolicExpression,F extends FunctionalLattice<F,Identifier,T>> |
A NonRelationalElement that models the standard concept of
non-relational abstract domain, and that is able to compute the value of a
SymbolicExpressions of type E by knowing the values of all
program variables.
|
| NonRelationalElement<T extends NonRelationalElement<T,E,F>,E extends SymbolicExpression,F extends FunctionalLattice<F,Identifier,T>> |
A non-relational domain, that is able to compute the value of a
SymbolicExpressions of type E by knowing the values of all
program variables.
|
| NonRelationalHeapDomain<T extends NonRelationalHeapDomain<T>> |
A non-relational heap domain, that is able to compute the value of a
SymbolicExpression by knowing the values of all program variables.
|
| NonRelationalValueDomain<T extends NonRelationalValueDomain<T>> |
A non-relational value domain, that is able to compute the value of a
ValueExpression by knowing the values of all program variables.
|
| NoOp |
A statement that does nothing.
|
| Not |
An expression modeling the logical negation (! or not).
|
| NotEqual |
An expression modeling the inequality test (!=).
|
| NullConstant |
A Constant that represent the null value.
|
| NullLiteral |
A literal representing the null constant.
|
| NullType |
The Null type, that is the type of {#link NullLiteral}.
|
| NumericType |
Numeric type interface.
|
| OpenCall |
A call to a CFG that is not under analysis.
|
| Operator |
|
| Or |
An expression modeling the logical disjunction (|| or or).
|
| OutOfScopeIdentifier |
An identifier outside the current scope of the call, that is, in a method
that is in the call stack but not the last one.
|
| PairRepresentation |
|
| Parameter |
A CFG parameter identified by its name and its type, containing the
information about the source file, line and column where the parameter is
defined.
|
| PluggableStatement |
A Statement that can be dynamically plugged into a CFG in
place of another statement.
|
| PointerType |
Pointer type interface.
|
| PossibleForwardDataflowDomain<E extends DataflowElement<PossibleForwardDataflowDomain<E>,E>> |
|
| Program |
A program that LiSA can analyze.
|
| ProgramPoint |
A program point, representing an instruction that is happening in one of the
CFG under analysis.
|
| ProgramValidationException |
A generic Exception that indicates that something has gone wrong
while validating a Program's structure or when computing unit's
hierarchies and cfgs' overridings.
|
| PushAny |
An expression converting that push any possible value on the stack.
|
| Remainder |
An expression modeling the remainder operation (%).
|
| Replace |
An expression modeling the string replace operation.
|
| Ret |
Terminates the execution of the CFG where this statement lies, without
returning anything to the caller.
|
| Return |
Returns an expression to the caller CFG, terminating the execution of the CFG
where this statement lies.
|
| ScopeToken |
|
| SemanticCheck<A extends AbstractState<A,H,V>,H extends HeapDomain<H>,V extends ValueDomain<V>> |
A Check that is able to exploit both the syntactic structure of the
program and the semantic information produced with the fixpoint iteration.
|
| SemanticDomain<D extends SemanticDomain<D,E,I>,E extends SymbolicExpression,I extends Identifier> |
A domain able to determine how abstract information evolves thanks to the
semantics of statements and expressions.
|
| SemanticDomain.Satisfiability |
The satisfiability of an expression.
|
| SemanticEvaluator |
An entity that can perform semantic evaluations that is not a
SemanticDomain.
|
| SemanticException |
An exception that occurred during semantic computation.
|
| SemanticExceptionWrapper |
A runtime exception that wraps a SemanticException, so that it can be
thrown within lambdas.
|
| SequentialEdge |
A sequential edge connecting two statement.
|
| SetLattice<S extends SetLattice<S,E>,E> |
A generic set lattice containing a set of elements.
|
| SetRepresentation |
|
| ShortAnnotationValue |
A short annotation value.
|
| SimpleAbstractState<H extends HeapDomain<H>,V extends ValueDomain<V>> |
An abstract state of the analysis, composed by a heap state modeling the
memory layout and a value state modeling values of program variables and
memory locations.
|
| Skip |
An expression that does nothing.
|
| SourceCodeLocation |
A location of an element in the source code represented by the path to the
source code, the line and the column where the element appears.
|
| StartsWith |
An expression modeling the string startsWith operation.
|
| Statement |
A statement of the program to analyze.
|
| StatementStore<A extends AbstractState<A,H,V>,H extends HeapDomain<H>,V extends ValueDomain<V>> |
A functional lattice that stores instances of AnalysisState computed
on statements.
|
| StatementWarning |
A warning reported by LiSA on a statement.
|
| StringAnnotationValue |
A string annotation value.
|
| StringLiteral |
A Literal representing a constant string value.
|
| StringRepresentation |
|
| StringType |
|
| StringType |
String type interface.
|
| Substring |
An expression modeling the string substring operation.
|
| Subtraction |
An expression modeling the subtraction operation (-).
|
| SymbolicExpression |
|
| SyntacticCheck |
A Check that is able to exploit only the syntactic structure of the
program.
|
| SyntheticLocation |
A synthetic code location.
|
| TernaryExpression |
|
| TernaryNativeCall |
|
| TernaryOperator |
|
| Throw |
A statement that raises an error, stopping the execution of the current CFG
and propagating the error to among the call chain.
|
| TimeFormat |
Time formatting utility.
|
| TimerLogger |
An utility class that allows automatic logging of the execution time of a
method.
|
| TimerLogger.LoggableAction |
A Runnable executing a function with no arguments a no return
value.
|
| TimerLogger.LoggableSupplier<R> |
A Supplier producing one element.
|
| TrueEdge |
An edge connecting two statements, that is traversed when the condition
expressed in the source state holds.
|
| TrueLiteral |
A Literal representing the true boolean value.
|
| Type |
Type interface.
|
| TypeTokenType |
The type of type tokens, used as reference to types in code.
|
| UInt16 |
|
| UInt16Literal |
A 16-bit unsigned Literal representing a constant integral value.
|
| UInt32 |
|
| UInt32Literal |
A 32-bit unsigned Literal representing a constant integral value.
|
| UInt64 |
|
| UInt64Literal |
A 64-bit unsigned Literal representing a constant integral value.
|
| UInt8 |
|
| UInt8Literal |
An 8-bit unsigned Literal representing a constant integral value.
|
| UnaryExpression |
|
| UnaryNativeCall |
|
| UnaryOperator |
|
| UnaryStatement |
A unary statement.
|
| Unit |
A unit of the program to analyze.
|
| UnitType |
|
| UnitWarning |
A warning reported by LiSA on one of the Units under analysis.
|
| UniversalExternalSet<T> |
An ExternalSet that always stays up-to-date with the contents of the
underlying factory, but that cannot be modified.
|
| UnresolvedCall |
A call that happens inside the program to analyze.
|
| UnresolvedCall.ResolutionStrategy |
An enum defining the different types of resolution strategies for call
signatures.
|
| Untyped |
The untyped type, corresponding to an unknown/untyped type.
|
| ValueDomain<D extends ValueDomain<D>> |
A semantic domain that can evaluate the semantic of statements that operate
on values, and not on memory locations.
|
| ValueEnvironment<T extends NonRelationalValueDomain<T>> |
|
| ValueExpression |
A symbolic expression that represents an operation on the program's state.
|
| Variable |
An identifier of a real program variable.
|
| VariableRef |
A reference to a variable of the current CFG, identified by its name.
|
| VariableTableEntry |
An entry in the variable table representing a CFG variable identified by its
index, containing the information about the source file, line and column
where the variable is defined.
|
| VisitOnceWorkingSet<E> |
A working set that guarantees that each element will be added to this working
set no more than once.
|
| VoidType |
The void type.
|
| Warning |
A warning reported by LiSA on the program under analysis.
|
| WarningWithLocation |
A warning reported by LiSA on the program under analysis.
|
| WorkingSet<E> |
A working set, containing items to be processed.
|