Package | Description |
---|---|
edu.umd.cs.findbugs |
Main package for the FindBugs application - contains the
engine class (FindBugs), the object model classes for bug instances
(BugInstance, BugAnnotation), and other miscellany.
|
edu.umd.cs.findbugs.ba |
A bytecode analysis framework for BCEL, providing CFG construction,
generic dataflow analysis, and a variety of specific dataflow analyses.
|
edu.umd.cs.findbugs.ba.ch | |
edu.umd.cs.findbugs.ba.interproc | |
edu.umd.cs.findbugs.ba.jsr305 |
Support for analyzing code containing JSR-305 type qualifier annotations.
|
edu.umd.cs.findbugs.ba.npe | |
edu.umd.cs.findbugs.ba.obl |
Implementation of dataflow analysis for checking whether
obligations to close streams and other resources (e.g.
|
edu.umd.cs.findbugs.bcel | |
edu.umd.cs.findbugs.classfile |
A high-level abstraction layer for codebases, classes, and components of
classes (methods, fields, instructions, etc.).
|
edu.umd.cs.findbugs.classfile.analysis |
Classes of objects that are the result of executing an analysis
engine on a class or method. The classes in this particular package are
those that are independent of any particular bytecode-analysis framework
(e.g., BCEL or ASM). Two important classes in this package are
ClassData, which represents the raw data of a class, and ClassInfo,
which represents symbolic information parsed from the class data.
|
edu.umd.cs.findbugs.classfile.engine |
Analysis engine classes to produce the analyses defined
in the edu.umd.cs.findbugs.classfile.analysis package.
|
edu.umd.cs.findbugs.classfile.engine.bcel |
Support for analyses based on the BCEL bytecode framework.
|
edu.umd.cs.findbugs.classfile.impl |
Implementations of the interfaces in the edu.umd.cs.findbugs.classfile
package: the core classes of the FindBugs classfile/classpath support
layer.
|
edu.umd.cs.findbugs.detect | |
edu.umd.cs.findbugs.visitclass |
Modifier and Type | Method and Description |
---|---|
MethodDescriptor |
MethodAnnotation.toMethodDescriptor() |
Modifier and Type | Method and Description |
---|---|
BugInstance |
BugInstance.addClassAndMethod(MethodDescriptor methodDescriptor) |
BugInstance |
BugInstance.addMethod(MethodDescriptor method)
Add a MethodAnnotation from an MethodDescriptor.
|
BugInstance |
BugInstance.addSourceLine(MethodDescriptor methodDescriptor,
Location location)
Add source line annotation for given Location in a method.
|
edu.umd.cs.findbugs.StackMapAnalyzer.JumpInfoFromStackMap |
StackMapAnalyzer.StackMapAnalysisFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
OpcodeStack.JumpInfo |
OpcodeStack.JumpInfoFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
static SourceLineAnnotation |
SourceLineAnnotation.forFirstLineOfMethod(MethodDescriptor methodDescriptor)
Make a best-effort attempt to create a SourceLineAnnotation for the first
line of a method.
|
static MethodAnnotation |
MethodAnnotation.fromMethodDescriptor(MethodDescriptor methodDescriptor)
Create a MethodAnnotation from a MethodDescriptor.
|
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstruction(MethodDescriptor methodDescriptor,
int position) |
static SourceLineAnnotation |
SourceLineAnnotation.fromVisitedInstruction(MethodDescriptor methodDescriptor,
Location location)
Create from MethodDescriptor and Location of visited instruction.
|
void |
DelegatingBugReporter.reportSkippedAnalysis(MethodDescriptor method)
Report that we skipped some analysis of a method
|
void |
AbstractBugReporter.reportSkippedAnalysis(MethodDescriptor method)
Report that we skipped some analysis of a method
|
Modifier and Type | Method and Description |
---|---|
MethodDescriptor |
XMethod.getAccessMethodForMethod() |
MethodDescriptor |
XMethod.getMethodDescriptor() |
MethodDescriptor |
AbstractMethod.getMethodDescriptor() |
MethodDescriptor |
JavaClassAndMethod.toMethodDescriptor()
Get the MethodDescriptor that (hopefully) uniqely names this method.
|
Modifier and Type | Method and Description |
---|---|
java.util.Map<MethodDescriptor,java.lang.Object> |
ClassContext.getObjectMap(java.lang.Class<?> analysisClass) |
Modifier and Type | Method and Description |
---|---|
void |
XFactory.addCalledMethod(MethodDescriptor m) |
void |
XFactory.addFunctionThatMightBeMistakenForProcedures(MethodDescriptor m) |
static java.lang.String |
SignatureConverter.convertMethodSignature(MethodDescriptor methodDescriptor)
Convenience method for generating a method signature in human readable
form.
|
static CFGBuilder |
CFGBuilderFactory.create(MethodDescriptor descriptor,
org.apache.bcel.generic.MethodGen methodGen)
Create a CFGBuilder to build a CFG for given method.
|
static XMethod |
XFactory.createXMethod(MethodDescriptor desc) |
static void |
ClassContext.dumpLiveLocalStoreDataflow(MethodDescriptor method,
CFG cfg,
LiveLocalStoreDataflow dataflow) |
XMethod |
XClass.findMatchingMethod(MethodDescriptor descriptor)
Find XMethod matching the name and signature of the supplied method
MethodDescriptor.
|
XMethod |
XClass.findMethod(MethodDescriptor descriptor)
Find XMethod matching given MethodDescriptor.
|
java.lang.Object |
ClassContext.getMethodAnalysis(java.lang.Class<?> analysisClass,
MethodDescriptor methodDescriptor)
Retrieve a method analysis object.
|
boolean |
XFactory.isFunctionshatMightBeMistakenForProcedures(MethodDescriptor m) |
void |
ClassContext.purgeMethodAnalyses(MethodDescriptor methodDescriptor)
Purge all CFG-based method analyses for given method.
|
void |
ClassContext.putMethodAnalysis(java.lang.Class<?> analysisClass,
MethodDescriptor methodDescriptor,
java.lang.Object object)
Store a method analysis object.
|
void |
DebugRepositoryLookupFailureCallback.reportSkippedAnalysis(MethodDescriptor method)
Report that we skipped some analysis of a method
|
Constructor and Description |
---|
BetterCFGBuilder2(MethodDescriptor descriptor,
org.apache.bcel.generic.MethodGen methodGen)
Constructor.
|
LockChecker(MethodDescriptor methodDescriptor)
Constructor.
|
MethodUnprofitableException(MethodDescriptor methodDescriptor)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
InterproceduralCallGraphVertex |
InterproceduralCallGraph.lookupVertex(MethodDescriptor methodDesc)
Deprecated.
Look up vertex corresponding to given method.
|
Modifier and Type | Method and Description |
---|---|
protected MethodDescriptor |
MethodPropertyDatabase.parseKey(java.lang.String methodStr) |
Modifier and Type | Method and Description |
---|---|
protected void |
MethodPropertyDatabase.writeKey(java.io.Writer writer,
MethodDescriptor method) |
Modifier and Type | Method and Description |
---|---|
protected abstract DataflowType |
TypeQualifierDataflowFactory.getDataflow(DepthFirstSearch dfs,
XMethod xmethod,
CFG cfg,
ValueNumberDataflow vnaDataflow,
org.apache.bcel.generic.ConstantPoolGen cpg,
IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor1,
TypeQualifierValue<?> typeQualifierValue) |
protected ForwardTypeQualifierDataflow |
ForwardTypeQualifierDataflowFactory.getDataflow(DepthFirstSearch dfs,
XMethod xmethod,
CFG cfg,
ValueNumberDataflow vnaDataflow,
org.apache.bcel.generic.ConstantPoolGen cpg,
IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor,
TypeQualifierValue<?> typeQualifierValue) |
protected BackwardTypeQualifierDataflow |
BackwardTypeQualifierDataflowFactory.getDataflow(DepthFirstSearch dfs,
XMethod xmethod,
CFG cfg,
ValueNumberDataflow vnaDataflow,
org.apache.bcel.generic.ConstantPoolGen cpg,
IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor,
TypeQualifierValue<?> typeQualifierValue) |
java.util.Collection<TypeQualifierValue<?>> |
DirectlyRelevantTypeQualifiersDatabase.getDirectlyRelevantTypeQualifiers(MethodDescriptor m)
Get the directly-relevant type qualifiers applied to given method.
|
TypeQualifierAnnotation |
TypeQualifierDatabase.getParameter(MethodDescriptor methodDesc,
int param,
TypeQualifierValue<?> tqv)
Get the TypeQualifierAnnotation on a parameter.
|
static java.util.Collection<TypeQualifierValue<?>> |
Analysis.getRelevantTypeQualifiers(MethodDescriptor methodDescriptor,
CFG cfg)
Find relevant type qualifiers needing to be checked for a given method.
|
TypeQualifierAnnotation |
TypeQualifierDatabase.getReturnValue(MethodDescriptor methodDesc,
TypeQualifierValue<?> tqv)
Get the TypeQualifierAnnotation on a method return value.
|
void |
DirectlyRelevantTypeQualifiersDatabase.setDirectlyRelevantTypeQualifiers(MethodDescriptor methodDescriptor,
java.util.Collection<TypeQualifierValue<?>> qualifiers)
Set the collection of directly-relevant type qualifiers for a given
method.
|
void |
TypeQualifierDatabase.setParameter(MethodDescriptor methodDesc,
int param,
TypeQualifierValue<?> tqv,
TypeQualifierAnnotation tqa)
Set a TypeQualifierAnnotation on a method parameter.
|
void |
TypeQualifierDatabase.setReturnValue(MethodDescriptor methodDesc,
TypeQualifierValue<?> tqv,
TypeQualifierAnnotation tqa)
Set a TypeQualifierAnnotation on a method return value.
|
Constructor and Description |
---|
BackwardTypeQualifierDataflowFactory(MethodDescriptor methodDescriptor)
Constructor.
|
ForwardTypeQualifierDataflowFactory(MethodDescriptor methodDescriptor)
Constructor.
|
TypeQualifierDataflowFactory(MethodDescriptor methodDescriptor) |
Constructor and Description |
---|
IsNullValueAnalysis(MethodDescriptor descriptor,
org.apache.bcel.generic.MethodGen methodGen,
CFG cfg,
ValueNumberDataflow vnaDataflow,
TypeDataflow typeDataflow,
DepthFirstSearch dfs,
AssertionMethods assertionMethods) |
Constructor and Description |
---|
MatchMethodEntry(MethodDescriptor method,
ObligationPolicyDatabaseActionType action,
ObligationPolicyDatabaseEntryType entryType,
Obligation... obligations) |
Modifier and Type | Method and Description |
---|---|
static MethodDescriptor |
BCELUtil.getCalledMethodDescriptor(org.apache.bcel.generic.InvokeInstruction inv,
org.apache.bcel.generic.ConstantPoolGen cpg)
Get a MethodDescriptor describing the method called by given
InvokeInstruction.
|
static MethodDescriptor |
BCELUtil.getMethodDescriptor(org.apache.bcel.classfile.JavaClass jclass,
org.apache.bcel.classfile.Method method)
Construct a MethodDescriptor from JavaClass and method.
|
Modifier and Type | Method and Description |
---|---|
protected abstract void |
CFGDetector.visitMethodCFG(MethodDescriptor methodDescriptor,
CFG cfg)
Visit the CFG (control flow graph) of a method to be analyzed.
|
Modifier and Type | Method and Description |
---|---|
MethodDescriptor |
DescriptorFactory.getMethodDescriptor(org.apache.bcel.classfile.JavaClass jClass,
org.apache.bcel.classfile.Method method) |
MethodDescriptor |
DescriptorFactory.getMethodDescriptor(MethodAnnotation ma) |
MethodDescriptor |
DescriptorFactory.getMethodDescriptor(java.lang.String className,
java.lang.String name,
java.lang.String signature,
boolean isStatic)
Get a MethodDescriptor.
|
Modifier and Type | Method and Description |
---|---|
void |
DescriptorFactory.canonicalize(MethodDescriptor m) |
<E> void |
IAnalysisCache.eagerlyPutMethodAnalysis(java.lang.Class<E> analysisClass,
MethodDescriptor methodDescriptor,
E analysisObject)
Eagerly put a method analysis object in the cache.
|
<E> E |
IAnalysisCache.getMethodAnalysis(java.lang.Class<E> analysisClass,
MethodDescriptor methodDescriptor)
Get an analysis of the given method.
|
void |
IAnalysisCache.purgeMethodAnalyses(MethodDescriptor methodDescriptor)
Purge all analysis results for given method.
|
void |
IErrorLogger.reportSkippedAnalysis(MethodDescriptor method)
Report that we skipped some analysis of a method
|
Modifier and Type | Class and Description |
---|---|
class |
MethodInfo |
Modifier and Type | Method and Description |
---|---|
MethodDescriptor |
MethodInfo.getAccessMethodForMethod() |
MethodDescriptor |
MethodInfo.getMethodDescriptor() |
Modifier and Type | Method and Description |
---|---|
XMethod |
ClassInfo.findMatchingMethod(MethodDescriptor descriptor) |
XMethod |
ClassInfo.findMethod(MethodDescriptor descriptor) |
Modifier and Type | Method and Description |
---|---|
protected MethodDescriptor |
ClassParserUsingBCEL.parseMethod(org.apache.bcel.classfile.Method obj)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
ValueRangeAnalysisFactory.ValueRangeAnalysis |
ValueRangeAnalysisFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
ValueNumberDataflow |
ValueNumberDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
UsagesRequiringNonNullValues |
UsagesRequiringNonNullValuesFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
UnpackedCode |
UnpackedCodeFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
UnconditionalValueDerefDataflow |
UnconditionalValueDerefDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
TypeDataflow |
TypeDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
StoreDataflow |
StoreDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
ReverseDepthFirstSearch |
ReverseDepthFirstSearchFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
ReturnPathTypeDataflow |
ReturnPathTypeDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
ReturnPathDataflow |
ReturnPathDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
java.lang.String[] |
ParameterSignatureListFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
ObligationDataflow |
ObligationDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
NonImplicitExceptionPostDominatorsAnalysis |
NonImplicitExceptionPostDominatorsAnalysisFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
NonExceptionPostdominatorsAnalysis |
NonExceptionPostdominatorsAnalysisFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
org.apache.bcel.generic.MethodGen |
MethodGenFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
org.apache.bcel.classfile.Method |
MethodFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
MethodBytecodeSet |
MethodBytecodeSetFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
LockDataflow |
LockDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
LockChecker |
LockCheckerFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
LoadedFieldSet |
LoadedFieldSetFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
LoadDataflow |
LoadDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
LiveLocalStoreDataflow |
LiveLocalStoreDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
IsNullValueDataflow |
IsNullValueDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
ForwardTypeQualifierDataflowFactory |
ForwardTypeQualifierDataflowFactoryFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
FinallyDuplicatesInfoFactory.FinallyDuplicatesInfo |
FinallyDuplicatesInfoFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
ExceptionSetFactory |
ExceptionSetFactoryFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
DominatorsAnalysis |
DominatorsAnalysisFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
DepthFirstSearch |
DepthFirstSearchFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
ConstantDataflow |
ConstantDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
CompactLocationNumbering |
CompactLocationNumberingFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
CallListDataflow |
CallListDataflowFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
CFG |
CFGFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
BlockTypeDataflow |
BlockTypeAnalysisFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
BackwardTypeQualifierDataflowFactory |
BackwardTypeQualifierDataflowFactoryFactory.analyze(IAnalysisCache analysisCache,
MethodDescriptor descriptor) |
protected CFG |
AnalysisFactory.getCFG(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected CompactLocationNumbering |
AnalysisFactory.getCompactLocationNumbering(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected DepthFirstSearch |
AnalysisFactory.getDepthFirstSearch(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected ExceptionSetFactory |
AnalysisFactory.getExceptionSetFactory(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected IsNullValueDataflow |
AnalysisFactory.getIsNullValueDataflow(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected LoadedFieldSet |
AnalysisFactory.getLoadedFieldSet(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected org.apache.bcel.classfile.Method |
AnalysisFactory.getMethod(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected org.apache.bcel.generic.MethodGen |
AnalysisFactory.getMethodGen(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected ReverseDepthFirstSearch |
AnalysisFactory.getReverseDepthFirstSearch(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected TypeDataflow |
AnalysisFactory.getTypeDataflow(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
protected ValueNumberDataflow |
AnalysisFactory.getValueNumberDataflow(IAnalysisCache analysisCache,
MethodDescriptor methodDescriptor) |
Modifier and Type | Method and Description |
---|---|
<E> void |
AnalysisCache.eagerlyPutMethodAnalysis(java.lang.Class<E> analysisClass,
MethodDescriptor methodDescriptor,
E analysisObject) |
<E> E |
AnalysisCache.getMethodAnalysis(java.lang.Class<E> analysisClass,
MethodDescriptor methodDescriptor) |
void |
AnalysisCache.purgeMethodAnalyses(MethodDescriptor methodDescriptor) |
Modifier and Type | Method and Description |
---|---|
MethodDescriptor |
FindRefComparison.getInvokedMethod(org.apache.bcel.generic.ConstantPoolGen cpg,
org.apache.bcel.generic.InvokeInstruction inv) |
MethodDescriptor |
BuildStringPassthruGraph.MethodParameter.getMethodDescriptor() |
Modifier and Type | Method and Description |
---|---|
java.util.Map<MethodDescriptor,int[]> |
BuildStringPassthruGraph.StringPassthruDatabase.findLinkedMethods(java.util.Set<BuildStringPassthruGraph.MethodParameter> inputs)
Returns methods which call directly or indirectly methods from inputs
passing the parameter unchanged
|
java.util.Map<MethodDescriptor,int[]> |
BuildStringPassthruGraph.StringPassthruDatabase.getFileNameStringMethods()
Returns methods which parameter is the file name
|
Modifier and Type | Method and Description |
---|---|
boolean |
FindNoSideEffectMethods.NoSideEffectMethodsDatabase.excluded(MethodDescriptor m) |
boolean |
FindNoSideEffectMethods.NoSideEffectMethodsDatabase.hasNoSideEffect(MethodDescriptor m) |
boolean |
FindNoSideEffectMethods.NoSideEffectMethodsDatabase.is(MethodDescriptor m,
FindNoSideEffectMethods.MethodSideEffectStatus... statuses) |
FindNoSideEffectMethods.MethodSideEffectStatus |
FindNoSideEffectMethods.NoSideEffectMethodsDatabase.status(MethodDescriptor m) |
boolean |
FindNoSideEffectMethods.NoSideEffectMethodsDatabase.useless(MethodDescriptor m) |
protected void |
FindUnsatisfiedObligation.visitMethodCFG(MethodDescriptor methodDescriptor,
CFG cfg) |
protected void |
CheckTypeQualifiers.visitMethodCFG(MethodDescriptor methodDescriptor,
CFG cfg) |
Constructor and Description |
---|
BuildStringPassthruGraph.MethodParameter(MethodDescriptor md,
int parameterNumber) |
Modifier and Type | Method and Description |
---|---|
MethodDescriptor |
PreorderVisitor.getMethodDescriptor() |
MethodDescriptor |
DismantleBytecode.getMethodDescriptorOperand() |
Modifier and Type | Method and Description |
---|---|
static boolean |
PreorderVisitor.hasInterestingMethod(org.apache.bcel.classfile.ConstantPool cp,
java.util.Collection<MethodDescriptor> methods)
Returns true if given constant pool probably has a reference to any of supplied methods
Useful to exclude from analysis uninteresting classes
|
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.