edu.umd.cs.findbugs.ba |
A bytecode analysis framework for BCEL, providing CFG construction,
generic dataflow analysis, and a variety of specific dataflow analyses.
|
Java Source File Name | Type | Comment |
AbstractBlockOrder.java | Class | Abstract base class for BlockOrder variants. |
AbstractClassMember.java | Class | |
AbstractDataflow.java | Class | Convenience class for defining Dataflow classes which use a
BasicAbstractDataflowAnalysis subtype. |
AbstractDataflowAnalysis.java | Class | Abstract base class providing functionality that will be useful
for most dataflow analysis implementations that model instructions
within basic blocks. |
AbstractDataflowTestDriver.java | Class | Abstract base class for dataflow test driver classes. |
AbstractDominatorsAnalysis.java | Class | A dataflow analysis to compute dominator relationships between
basic blocks. |
AbstractField.java | Class | |
AbstractFrameModelingVisitor.java | Class | A common base class for frame modeling visitors.
This class provides a default implementation which copies values
between frame slots whenever appropriate. |
AbstractMethod.java | Class | |
AccessibleEntity.java | Interface | Common superinterface for code entities having access flags:
classes, fields, and methods. |
AnalysisCacheToAnalysisContextAdapter.java | Class | An AnalysisContext implementation that uses the
IAnalysisCache. |
AnalysisContext.java | Class | A context for analysis of a complete project. |
AnalysisException.java | Class | A kind of runtime exception that can be thrown to indicate
a fatal error in an analysis. |
AnalysisFeatures.java | Interface | Boolean analysis properties for use in the AnalysisContext. |
AnnotationDatabase.java | Class | Database to keep track of annotated fields/methods/classes/etc. |
AnnotationEnumeration.java | Class | |
AnnotationRetentionDatabase.java | Class | |
AssertionMethods.java | Class | Mark methodref constant pool entries of methods
that are likely to implement assertions. |
AssignedFieldMap.java | Class | |
BackwardDataflowAnalysis.java | Class | Abstract base class for backward dataflow analyses. |
BasicAbstractDataflowAnalysis.java | Class | A useful starting point for defining a dataflow analysis. |
BasicBlock.java | Class | Simple basic block abstraction for BCEL. |
BetterCFGBuilder2.java | Class | A CFGBuilder that really tries to construct accurate control flow graphs. |
BlockOrder.java | Interface | Specify an order for visiting basic blocks. |
BlockType.java | Class | Dataflow value representing the current nesting of
catch and finally blocks. |
BlockTypeAnalysis.java | Class | Dataflow analysis to determine the nesting of catch and finally
blocks within a method. |
BlockTypeDataflow.java | Class | |
BytecodeScanner.java | Class | Scan the raw bytecodes of a method. |
CFG.java | Class | Simple control flow graph abstraction for BCEL. |
CFGBuilder.java | Interface | Abstract interface for CFG builder classes. |
CFGBuilderException.java | Class | |
CFGBuilderFactory.java | Class | Factory object to create CFGBuilders for methods.
Using a CFGBuilderFactory is preferable to direct instantiation of
CFGBuilders, because it gives us an easy hook for plugging in
new CFGBuilder implementations. |
CFGPrinter.java | Class | Print out a representation of a control-flow graph. |
CheckReturnAnnotationDatabase.java | Class | |
CheckReturnValueAnnotation.java | Class | |
ClassContext.java | Class | A ClassContext caches all of the auxiliary objects used to analyze
the methods of a class. |
ClassHash.java | Class | Compute a hash of method names and signatures. |
ClassMember.java | Interface | Common super-interface for class members (fields and methods). |
ClassNotFoundExceptionParser.java | Class | Parse the detail message in a ClassNotFoundException
to extract the name of the missing class.
Unfortunately, this information is not directly available
from the exception object. |
CompactLocationNumbering.java | Class | Compute a compact numbering of Locations in a CFG. |
CompoundMethodChooser.java | Class | |
Dataflow.java | Class | Perform dataflow analysis on a method using a control flow graph. |
DataflowAnalysis.java | Interface | A dataflow analysis to be used with the
Dataflow class. |
DataflowAnalysisException.java | Class | Exception type to indicate a dataflow analysis failure. |
DataflowCFGPrinter.java | Class | CFGPrinter class which prints dataflow values at
each basic block and instruction. |
DataflowTestDriver.java | Class | A test driver for dataflow analysis classes. |
DataflowValueChooser.java | Interface | Predicate for dataflow values. |
Debug.java | Interface | |
DebugRepositoryLookupFailureCallback.java | Class | DebugRepositoryLookupFailureCallback implementation for debugging. |
DefaultNullnessAnnotations.java | Class | |
DepthFirstSearch.java | Class | Algorithm to perform a depth first search on a CFG. |
DFSCFGPrinter.java | Class | |
DFSEdgeTypes.java | Interface | Interface defining depth first search edge type constants. |
DominatorsAnalysis.java | Class | Dataflow analysis to compute dominator sets for a CFG. |
Edge.java | Class | An edge of a control flow graph. |
EdgeChooser.java | Interface | Interface for choosing CFG Edges. |
EdgeTypes.java | Interface | Constants defining the type of control flow edges,
as well as flags defining additional information
about the edges. |
ExceptionHandlerMap.java | Class | This class provides a convenient way of determining the exception handlers
for instructions in a method. |
FileSourceFileDataSource.java | Class | Data source for source files which are stored in
the filesystem. |
ForwardDataflowAnalysis.java | Class | Abstract base class for forward dataflow analyses. |
Frame.java | Class | Generic class for representing a Java stack frame as a dataflow value. |
FrameDataflowAnalysis.java | Class | A convenient base class for dataflow analysis classes which
use Frames as values. |
Hierarchy.java | Class | Facade for class hierarchy queries.
These typically access the class hierarchy using
the
org.apache.bcel.Repository class. |
Hierarchy2.java | Class | Facade for class hierarchy queries.
These typically access the class hierarchy using
the
org.apache.bcel.Repository class. |
IncompatibleTypes.java | Class | |
InnerClassAccess.java | Class | |
InnerClassAccessMap.java | Class | Determine which methods are accessors used
by inner classes to access fields in their enclosing classes. |
InstanceField.java | Class | |
InstanceMethod.java | Class | |
InstructionHandleMap.java | Class | Map BCEL InstructionHandles to some kind of value type. |
INullnessAnnotationDatabase.java | Interface | Interface for querying nullness annotations on methods, fields,
and parameters. |
InvalidBytecodeException.java | Class | An exception that may be thrown by frame modeling visitor
classes to indicate that the method being analyzed contains
invalid bytecode. |
JavaClassAndMethod.java | Class | A JavaClass and a Method belonging to the class. |
JavaClassAndMethodChooser.java | Interface | |
JCIPAnnotationDatabase.java | Class | |
LegacyAnalysisContext.java | Class | Original implementation of AnalysisContext. |
LineNumberMap.java | Class | Summarize line numbers (and other source information)
for a method. |
LiveLocalStoreAnalysis.java | Class | Dataflow analysis to find live stores of locals. |
LiveLocalStoreDataflow.java | Class | Dataflow class for LiveLocalStoreAnalysis. |
Location.java | Class | A class representing a location in the CFG for a method.
Essentially, it represents a static instruction, with the important caveat
that CFGs have inlined JSR subroutines, meaning that a single InstructionHandle
in a CFG may represent several static locations. |
LockAnalysis.java | Class | Analysis to determine where particular values are locked in a method. |
LockChecker.java | Class | Front-end for LockDataflow that can avoid doing unnecessary work
(e.g., actually performing the lock dataflow)
if the method analyzed does not contain explicit
monitorenter/monitorexit instructions. |
LockDataflow.java | Class | Dataflow class for LockAnalysis. |
LockSet.java | Class | Lock counts for values (as produced by ValueNumberAnalysis). |
MethodBytecodeSet.java | Class | Class representing the set of opcodes used in a method. |
MethodChooser.java | Interface | Interface for choosing methods. |
MethodHash.java | Class | Compute a hash of the bytecode for given method. |
MethodHashTest.java | Class | |
MethodUnprofitableException.java | Class | |
MissingClassException.java | Class | DataflowAnalysisException variant to report a class lookup failure
that caused dataflow analysis to abort. |
NullnessAnnotation.java | Class | |
NullnessAnnotationDatabase.java | Class | |
ObjectTypeFactory.java | Class | |
package-info.java | | |
PostDominatorsAnalysis.java | Class | Dataflow analysis to compute postdominator sets for a CFG. |
PruneInfeasibleExceptionEdges.java | Class | Prune a CFG to remove infeasible exception edges. |
PruneUnconditionalExceptionThrowerEdges.java | Class | |
RepositoryClassParser.java | Class | A special version of ClassParser that automatically enters
parsed classes into the Repository. |
RepositoryLookupFailureCallback.java | Interface | An interface which Repository class lookup failures are reported to.
Some of the analysis classes make use of class hierarchy information.
In collecting this information, errors can result because some
classes in the hierarchy can't be found; e.g., when the runtime
classpath is incomplete. |
ResourceTracker.java | Interface | A ResourceTracker is used with ResourceValueAnalysis to determine
where in a method a certain kind of resource is created, and
to model the effect of instructions on the state of that resource. |
ResourceValue.java | Class | |
ResourceValueAnalysis.java | Class | |
ResourceValueAnalysisTestDriver.java | Class | |
ResourceValueFrame.java | Class | |
ResourceValueFrameModelingVisitor.java | Class | |
ReturnPath.java | Class | |
ReturnPathAnalysis.java | Class | |
ReturnPathDataflow.java | Class | |
ReverseDepthFirstSearch.java | Class | Algorithm to perform a reverse depth first search on a CFG. |
ReverseDFSOrder.java | Class | A BlockOrder for visiting the blocks of a CFG in
the order they would be visited in a depth first search
of the reversed CFG. |
ReversePostOrder.java | Class | A BlockOrder for visiting the blocks of a CFG in
the reverse of the order in which they are finished in
a depth first search. |
SignatureConverter.java | Class | Convert part or all of a Java type signature into something
closer to what types look like in the source code. |
SignatureParser.java | Class | A simple class to parse method signatures. |
SignatureParserTest.java | Class | |
SimplePathEnumerator.java | Class | Object to enumerate (some subset of) the simple paths in a CFG. |
SourceFile.java | Class | Cached data for a source file. |
SourceFileDataSource.java | Interface | A data source which can produce a stream for a source file. |
SourceFinder.java | Class | Class to open input streams on source files. |
SourceInfoMap.java | Class | Global information about the source code for an application. |
StackDepth.java | Class | Dataflow fact to represent the depth of the Java operand stack. |
StackDepthAnalysis.java | Class | A really simple forward dataflow analysis to find the depth of
the Java operand stack. |
StaticField.java | Class | |
StaticMethod.java | Class | |
Target.java | Class | The target of a branch instruction. |
TargetEnumeratingVisitor.java | Class | Visitor to find all of the targets of an instruction
whose InstructionHandle is given. |
UnresolvedXField.java | Class | |
UnresolvedXMethod.java | Class | XMethod implementation for unresolvable methods. |
URLClassPath.java | Class | A work-alike class to use instead of BCEL's ClassPath class. |
URLClassPathRepository.java | Class | BCEL Repository implementation that uses an URLClassPath
to find classes. |
XClass.java | Interface | Interface for object representing information about a class. |
XFactory.java | Class | Factory methods for creating XMethod objects. |
XField.java | Interface | Abstract representation of a field.
Note that this is called "XField" to distinguish it from
BCEL's Field class. |
XMethod.java | Interface | An XMethod represents symbolic information about a particular method. |
XMethodParameter.java | Class | |
ZipSourceFileDataSource.java | Class | A source file data source for source files residing in Zip or Jar
archives. |