Package edu.umd.cs.findbugs.ba
@ParametersAreNonnullByDefault
@AnalysisContextContained
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.
-
ClassDescriptionAbstract base class for BlockOrder variants.AbstractDataflow<Fact,
AnalysisType extends BasicAbstractDataflowAnalysis<Fact>> Convenience class for defining Dataflow classes which use a BasicAbstractDataflowAnalysis subtype.AbstractDataflowAnalysis<Fact>Abstract base class providing functionality that will be useful for most dataflow analysis implementations that model instructions within basic blocks.A dataflow analysis to compute dominator relationships between basic blocks.AbstractFrameModelingVisitor<Value,FrameType extends Frame<Value>> A common base class for frame modeling visitors.Common superinterface for code entities having access flags: classes, fields, and methods.A context for analysis of a complete project.A kind of runtime exception that can be thrown to indicate a fatal error in an analysis.Boolean analysis properties for use in the AnalysisContext.AnnotationDatabase<AnnotationEnum extends AnnotationEnumeration<AnnotationEnum>>Database to keep track of annotated fields/methods/classes/etc.AnnotationEnumeration<E extends AnnotationEnumeration<E>>Mark methodref constant pool entries of methods that are likely to implement assertions.BackwardDataflowAnalysis<Fact>Abstract base class for backward dataflow analyses.A useful starting point for defining a dataflow analysis.Simple basic block abstraction for BCEL.A CFGBuilder that really tries to construct accurate control flow graphs.Specify an order for visiting basic blocks.Dataflow value representing the current nesting of catch and finally blocks.Dataflow analysis to determine the nesting of catch and finally blocks within a method.Scan the raw bytecodes of a method.Callback interface to report scanned instructions.Simple control flow graph abstraction for BCEL.Abstract interface for CFG builder classes.Factory object to create CFGBuilders for methods.Print out a representation of a control-flow graph.A ClassContext caches all of the auxiliary objects used to analyze the methods of a class.Compute a hash of method names and signatures.Common super-interface for class members (fields and methods).Parse the detail message in a ClassNotFoundException to extract the name of the missing class.Compute a compact numbering of Locations in a CFG.Deprecated.Dataflow<Fact,AnalysisType extends DataflowAnalysis<Fact>> Perform dataflow analysis on a method using a control flow graph.DataflowAnalysis<Fact>A dataflow analysis to be used with theDataflow
class.Exception type to indicate a dataflow analysis failure.DataflowCFGPrinter<Fact,AnalysisType extends DataflowAnalysis<Fact>> CFGPrinter class which prints dataflow values at each basic block and instruction.DataflowValueChooser<Value>Predicate for dataflow values.DebugRepositoryLookupFailureCallback implementation for debugging.Algorithm to perform a depth first search on a CFG.Interface defining depth first search edge type Const.Dataflow analysis to compute dominator sets for a CFG.An edge of a control flow graph.Interface for choosing CFG Edges.Constants defining the type of control flow edges, as well as flags defining additional information about the edges.This class provides a convenient way of determining the exception handlers for instructions in a method.Interprocedural analysis summaryData 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.Facade for class hierarchy queries.Facade for class hierarchy queries.Determine which methods are accessors used by inner classes to access fields in their enclosing classes.InstructionHandleMap<ValueType>Map BCEL InstructionHandles to some kind of value type.Interface for querying nullness annotations on methods, fields, and parameters.An exception that may be thrown by frame modeling visitor classes to indicate that the method being analyzed contains invalid bytecode.A JavaClass and a Method belonging to the class.Deprecated.Summarize line numbers (and other source information) for a method.Dataflow analysis to find live stores of locals.Dataflow class for LiveLocalStoreAnalysis.A class representing a location in the CFG for a method.Analysis to determine where particular values are locked in a method.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.Dataflow class for LockAnalysis.Lock counts for values (as produced by ValueNumberAnalysis).Class representing the set of opcodes used in a method.Interface for choosing methods.Compute a hash of the bytecode for given method.Used to signal a method not analyzed because it seemed unprofitable to do soDataflowAnalysisException variant to report a class lookup failure that caused dataflow analysis to abort.Nullness annotation detector.Deprecated.A Path is a sequence of basic blocks.Visit the BasicBlocks, InstructionHandles, and Edges along a Path.Dataflow analysis to compute postdominator sets for a CFG.Prune a CFG to remove infeasible exception edges.A special version of ClassParser that automatically enters parsed classes into the Repository.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.ResourceValueAnalysis<Resource>Algorithm to perform a reverse depth first search on a CFG.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.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.Convert part or all of a Java type signature into something closer to what types look like in the source code.A simple class to parse method signatures.Object to enumerate (some subset of) the simple paths in a CFG.Cached data for a source file.A data source which can produce a stream for a source file.Class to open input streams on source files.Global information about the source code for an application.A range of source lines.Dataflow fact to represent the depth of the Java operand stack.A really simple forward dataflow analysis to find the depth of the Java operand stack.The target of a branch instruction.Visitor to find all of the targets of an instruction whose InstructionHandle is given.A work-alike class to use instead of BCEL's ClassPath class.BCEL Repository implementation that uses an URLClassPath to find classes.Interface for object representing information about a class.Factory methods for creating XMethod objects.Abstract representation of a field.An XMethod represents symbolic information about a particular method.A source file data source for source files residing in Zip or Jar archives.