Package edu.umd.cs.findbugs.ba

A bytecode analysis framework for BCEL, providing CFG construction, generic dataflow analysis, and a variety of specific dataflow analyses.

See:
          Description

Interface Summary
AnalysisFeatures  
BlockOrder Specify an order for visiting basic blocks.
BytecodeScanner.Callback Callback interface to report scanned instructions.
CFGBuilder Abstract interface for CFG builder classes.
ClassObserver An interface to be implemented by classes which observer the analysis of classes.
DataflowAnalysis<Fact> A dataflow analysis to be used with the Dataflow class.
Debug  
DFSEdgeTypes Interface defining depth first search edge type constants.
EdgeTypes Constants defining the type of control flow edges, as well as flags defining additional information about the edges.
ExtendedTypes Extended type codes used by StackAndLocalTypes and StackAndLocalTypeAnalysis for typing locals and stack values used in Java bytecode.
RepositoryLookupFailureCallback An interface which Repository class lookup failures are reported to.
ResourceTracker<Resource> 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.
SourceFileDataSource A data source which can produce a stream for a source file.
SourceFinder.SourceRepository A repository of source files.
TypeMerger Interface for object which merges types for TypeAnalysis.
ValueNumberAnalysisFeatures Global flags controlling ValueNumberAnalysis.
XField Abstract representation of a field.
 

Class Summary
AbstractBlockOrder Abstract base class for BlockOrder variants.
AbstractDataflowAnalysis<Fact> Abstract base class providing functionality that will be useful for most dataflow analysis implementations.
AbstractDominatorsAnalysis A dataflow analysis to compute dominator relationships between basic blocks.
AbstractField  
AbstractFrameModelingVisitor<Value,FrameType extends Frame<Value>> A common base class for frame modeling visitors.
AnalysisContext A context for analysis of a complete project.
AnalysisContext.ClassContextCache  
AnyLockCountAnalysis  
AssertionMethods Mark methodref constant pool entries of methods that are likely to implement assertions.
AssertionMethods.UserAssertionMethod  
AssignedFieldMap  
AvailableLoad An AvailableLoad indicates a field and (optionally) object reference for which a value is available.
BackwardDataflowAnalysis<Fact> Abstract base class for backward dataflow analyses.
BasicBlock Simple basic block abstraction for BCEL.
BasicBlock.InstructionReverseIterator A reverse Iterator over the instructions in a basic block.
BetterCFGBuilder2 A CFGBuilder that really tries to construct accurate control flow graphs.
BetterCFGBuilder2.Context Inlining context.
BetterCFGBuilder2.EscapeTarget A placeholder for a control edge that escapes its subroutine to return control back to an outer (calling) subroutine.
BetterCFGBuilder2.WorkListItem A work list item for creating the CFG for a subroutine.
BetterTypeAnalysis  
BetterTypeFrame A Frame containing Type objects representing the type of each item in a Java stack frame.
BetterTypeFrameModelingVisitor Dataflow analysis to determine types for slots in Java stack frames, using a TypeRepository to create the type objects (rather than BCEL's Type classes).
BlockType Dataflow value representing the current nesting of catch and finally blocks.
BlockTypeAnalysis Dataflow analysis to determine the nesting of catch and finally blocks within a method.
BottomType Special "bottom" type.
BytecodeScanner Scan the raw bytecodes of a method.
CFG Simple control flow graph abstraction for BCEL.
CFGBuilderFactory Factory object to create CFGBuilders for methods.
CFGPrinter Print out a representation of a control-flow graph.
ClassContext A ClassContext caches all of the auxiliary objects used to analyze the methods of a class.
ClassContext.AnalysisResult<Analysis> An AnalysisResult stores the result of requesting an analysis from an AnalysisFactory.
ClassNotFoundExceptionParser Parse the detail message in a ClassNotFoundException to extract the name of the missing class.
Dataflow<Fact,AnalysisType extends DataflowAnalysis<Fact>> Perform dataflow analysis on a method using a control flow graph.
DataflowCFGPrinter<Fact,AnalysisType extends AbstractDataflowAnalysis<Fact>> CFGPrinter class which prints dataflow values at each basic block and instruction.
DataflowTestDriver<Fact,AnalysisType extends AbstractDataflowAnalysis<Fact>> A test driver for dataflow analysis classes.
DepthFirstSearch Algorithm to perform a depth first search on a CFG.
DFSCFGPrinter  
DominatorsAnalysis Dataflow analysis to compute dominator sets for a CFG.
DoubleExtraType Special type used to represent the "extra" part of a double value.
Edge An edge of a control flow graph.
ExceptionHandlerMap This class provides a convenient way of determining the exception handlers for instructions in a method.
ExceptionObjectType Special ReferenceType representing the type of a caught exception.
ExceptionSet Class for keeping track of exceptions that can be thrown by an instruction.
ExceptionSetFactory  
FileSourceFileDataSource Data source for source files which are stored in the filesystem.
ForwardDataflowAnalysis<Fact> Abstract base class for forward dataflow analyses.
Frame<ValueType> Generic class for representing a Java stack frame as a dataflow value.
FrameDataflowAnalysis<ValueType,FrameType extends Frame<ValueType>> A convenient base class for dataflow analysis classes which use Frames as values.
Hierarchy Facade for class hierarchy queries.
InnerClassAccess  
InnerClassAccessMap Singleton class to determine which methods are accessors used by inner classes to access fields in their enclosing classes.
InnerClassAccessMap.InstructionCallback Callback to scan an access method to determine what field it accesses, and whether the field is loaded or stored.
InstanceField  
IsNullConditionDecision A control decision which resulted in information being gained about whether a particular value is null or non-null on the IFCMP_EDGE and FALL_THROUGH_EDGE branches.
IsNullValue A class to abstractly represent values in stack slots, indicating whether thoses values can be null, non-null, null on some incoming path, or unknown.
IsNullValueAnalysis A dataflow analysis to detect potential null pointer dereferences.
IsNullValueDataflow  
IsNullValueFrame  
IsNullValueFrameModelingVisitor  
LineNumberMap Summarize line numbers (and other source information) for a method.
LiveLocalStoreAnalysis Dataflow analysis to find live stores of locals.
LiveLocalStoreDataflow Dataflow class for LiveLocalStoreAnalysis.
LoadedFieldSet Object which stores which fields are loaded and stored by the instructions in a method (including through inner-class access methods), and also which fields are loaded/stored by the overall method.
LoadedFieldSet.LoadStoreCount Count number of times a field is loaded and/or stored in the method.
Location A class representing a location in the CFG for a method.
LockAnalysis Analysis to determine where particular values are locked in a method.
LockCount Dataflow value for representing the number of locks held.
LockCountAnalysis Family of dataflow analyses for counting the number of locks held at points in a method.
LockCountDataflow  
LockDataflow  
LockSet Lock counts for values (as produced by ValueNumberAnalysis).
LongExtraType Special type used to represent the "extra" part of a long value.
NullType Special type representing the null value.
OtherLockCountAnalysis A dataflow analysis to count the number of times an object other than "this" has been locked.
PostDominatorsAnalysis Dataflow analysis to compute postdominator sets for a CFG.
PruneInfeasibleExceptionEdges Prune a CFG to remove infeasible exception edges.
PruneInfeasibleExceptionEdges.MarkedEdge A momento to remind us of how we classified a particular exception edge.
PruneUnconditionalExceptionThrowerEdges  
RepositoryClassParser A special version of ClassParser that automatically enters parsed classes into the Repository.
ResourceValue  
ResourceValueAnalysis<Resource>  
ResourceValueAnalysisTestDriver<Resource,ResourceTrackerType extends ResourceTracker<Resource>>  
ResourceValueFrame  
ResourceValueFrameModelingVisitor  
ReturnPath  
ReturnPathAnalysis  
ReturnPathDataflow  
ReverseDepthFirstSearch Algorithm to perform a reverse depth first search on a CFG.
ReverseDFSOrder 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.
ReverseDFSOrder.ReverseDFSComparator  
ReversePostfixOrder 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.
ReversePostfixOrder.ReversePostfixComparator A Comparator to order the blocks in the reverse of the order in which they would be finished by a depth first search.
SignatureConverter Convert part or all of a Java type signature into something closer to what types look like in the source code.
SignatureParser A simple class to parse method signatures.
SimplePathEnumerator Object to enumerate (some subset of) the simple paths in a CFG.
SourceFile Cached data for a source file.
SourceFile.LineNumberMapBuilder Helper object to build map of line number to byte offset for a source file.
SourceFinder Class to open input streams on source files.
SourceFinder.Cache Cache of SourceFiles.
SourceFinder.DirectorySourceRepository A directory containing source files.
SourceFinder.ZipSourceRepository A zip or jar archive containing source files.
StackDepth Dataflow fact to represent the depth of the Java operand stack.
StackDepthAnalysis A really simple forward dataflow analysis to find the depth of the Java operand stack.
StandardTypeMerger A TypeMerger which applies standard Java semantics when merging Types.
StaticField  
Target The target of a branch instruction.
TargetEnumeratingVisitor Visitor to find all of the targets of an instruction whose InstructionHandle is given.
ThrownException An exception thrown from an instruction.
TopType Special "top" type.
TypeAnalysis A forward dataflow analysis to determine the types of all values in the Java stack frame at all points in a Java method.
TypeDataflow  
TypeFrame A specialization of Frame for determining the types of values in the Java stack frame (locals and operand stack).
TypeFrameModelingVisitor Visitor to model the effects of bytecode instructions on the types of the values (local and operand stack) in Java stack frames.
ValueNumber A "value number" is a value produced somewhere in a methods.
ValueNumberAnalysis A dataflow analysis to track the production and flow of values in the Java stack frame.
ValueNumberAnalysis.ValueCompacter  
ValueNumberCache A cache mapping instructions and input values to the output values they produce.
ValueNumberCache.Entry An entry in the cache.
ValueNumberDataflow  
ValueNumberFactory Factory for ValueNumbers.
ValueNumberFrame A dataflow value representing a Java stack frame with value number information.
ValueNumberFrameModelingVisitor Visitor which models the effects of bytecode instructions on value numbers of values in the operand stack frames.
ZipSourceFileDataSource A source file data source for source files residing in Zip or Jar archives.
 

Exception Summary
AnalysisException A kind of runtime exception that can be thrown to indicate a fatal error in an analysis.
CFGBuilderException  
DataflowAnalysisException Exception type to indicate a dataflow analysis failure.
InnerClassAccessMap.LookupFailure  
 

Package edu.umd.cs.findbugs.ba Description

A bytecode analysis framework for BCEL, providing CFG construction, generic dataflow analysis, and a variety of specific dataflow analyses.