de.rwth.dfa.jvm.samples
Class CPAnalyser
java.lang.Object
|
+--de.rwth.utils.AbstractClassProcessor
|
+--de.rwth.dfa.jvm.samples.AbstractAnalyser
|
+--de.rwth.dfa.jvm.samples.CPAnalyser
- Direct Known Subclasses:
- CFPAnalyser
- public class CPAnalyser
- extends AbstractAnalyser
An application for finding constants in the operand stack and the local variables
at each instruction of all methods of a class file.
- Version:
- $Id: CPAnalyser.java,v 1.3 2002/09/17 06:53:53 mohnen Exp $
- Author:
- Markus Mohnen
|
Constructor Summary |
CPAnalyser(java.lang.String[] args)
Creates a new CPAnalyser instance. |
|
Method Summary |
Abstraction |
getAbstraction(de.fub.bytecode.classfile.Method method,
de.fub.bytecode.classfile.Code code,
de.fub.bytecode.classfile.CodeException[] methodExceptions,
de.fub.bytecode.generic.InstructionList instrs)
Returns a CPAbstraction for a method. |
Solver[] |
getSolvers(Abstraction abstraction,
java.lang.String methodName,
de.fub.bytecode.generic.InstructionList methodInstrs,
de.fub.bytecode.classfile.CodeException[] methodExceptions,
Stopwatch stopwatch)
Returns two groups of solvers: BasicBlockGraphSolver, ExecutionSolver, FlowGraphSolver, and FactorisedFlowGraphSolver, FactorisedBasicBlockGraphSolver. |
static void |
main(java.lang.String[] args)
Program entry point. |
void |
process(de.fub.bytecode.classfile.Method method,
java.lang.String filename)
Does additional statistics in addition to AbstractAnalyser.process(Method,String). |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CPAnalyser
public CPAnalyser(java.lang.String[] args)
- Creates a new
CPAnalyser instance.
- Parameters:
args - a String[] value- See Also:
AbstractAnalyser
main
public static void main(java.lang.String[] args)
- Program entry point.
- Parameters:
args - a String[] value- See Also:
AbstractAnalyser
getAbstraction
public Abstraction getAbstraction(de.fub.bytecode.classfile.Method method,
de.fub.bytecode.classfile.Code code,
de.fub.bytecode.classfile.CodeException[] methodExceptions,
de.fub.bytecode.generic.InstructionList instrs)
- Returns a
CPAbstraction for a method.
- Overrides:
getAbstraction in class AbstractAnalyser
- Parameters:
method - a Method valuecode - a Code valuemethodExceptions - a CodeException[] valueinstrs - an InstructionList value- Returns:
- an
Abstraction value
getSolvers
public Solver[] getSolvers(Abstraction abstraction,
java.lang.String methodName,
de.fub.bytecode.generic.InstructionList methodInstrs,
de.fub.bytecode.classfile.CodeException[] methodExceptions,
Stopwatch stopwatch)
- Returns two groups of solvers:
BasicBlockGraphSolver, ExecutionSolver, FlowGraphSolver, and FactorisedFlowGraphSolver, FactorisedBasicBlockGraphSolver.
- Overrides:
getSolvers in class AbstractAnalyser
- Parameters:
abstraction - an Abstraction valuemethodName - a String valuemethodInstrs - an InstructionList valuemethodExceptions - a CodeException[] valuestopwatch - a Stopwatch value- Returns:
- a
Solver[] value
process
public void process(de.fub.bytecode.classfile.Method method,
java.lang.String filename)
- Does additional statistics in addition to
AbstractAnalyser.process(Method,String).
- Overrides:
process in class AbstractAnalyser
- Parameters:
method - a Method valuefilename - a String value