org.apache.bcel.verifier.structurals |
Provides a PassVerifier class mostly used internally by JustIce, yielding a control flow graph for public use as
a nice side effect.
Package Specification
Contained in this package is a PassVerifier class for use with the JustIce verifier and its utility classes.
Only the pass performing what Sun calls "Structural Constraints on Java Virtual Machine Code"
has a PassVerifier class here. JustIce calls this pass "Pass 3b".
|
Java Source File Name | Type | Comment |
ControlFlowGraph.java | Class | This class represents a control flow graph of a method. |
ExceptionHandler.java | Class | This class represents an exception handler; that is, an ObjectType
representing a subclass of java.lang.Throwable and the instruction
the handler starts off (represented by an InstructionContext). |
ExceptionHandlers.java | Class | This class allows easy access to ExceptionHandler objects. |
ExecutionVisitor.java | Class | This Visitor class may be used for a type-based Java Virtual Machine
simulation.
It does not check for correct types on the OperandStack or in the
LocalVariables; nor does it check their sizes are sufficiently big.
Thus, to use this Visitor for bytecode verifying, you have to make sure
externally that the type constraints of the Java Virtual Machine instructions
are satisfied. |
Frame.java | Class | This class represents a JVM execution frame; that means,
a local variable array and an operand stack. |
GenericArray.java | Class | A placeholder class that can be used to create an ObjectType of which
has some of the properties arrays have. |
InstConstraintVisitor.java | Class | A Visitor class testing for valid preconditions of JVM instructions. |
InstructionContext.java | Interface | An InstructionContext offers convenient access
to information like control flow successors and
such. |
LocalVariables.java | Class | This class implements an array of local variables used for symbolic JVM
simulation. |
OperandStack.java | Class | This class implements a stack used for symbolic JVM stack simulation. |
Pass3bVerifier.java | Class | This PassVerifier verifies a method of class file according to pass 3,
so-called structural verification as described in The Java Virtual Machine
Specification, 2nd edition.
More detailed information is to be found at the do_verify() method's
documentation. |
Subroutine.java | Interface | This interface defines properties of JVM bytecode subroutines. |
Subroutines.java | Class | Instances of this class contain information about the subroutines
found in a code array of a method.
This implementation considers the top-level (the instructions
reachable without a JSR or JSR_W starting off from the first
instruction in a code array of a method) being a special subroutine;
see getTopLevel() for that.
Please note that the definition of subroutines in the Java Virtual
Machine Specification, Second Edition is somewhat incomplete.
Therefore, JustIce uses an own, more rigid notion.
Basically, a subroutine is a piece of code that starts at the target
of a JSR of JSR_W instruction and ends at a corresponding RET
instruction. |
UninitializedObjectType.java | Class | This class represents an uninitialized object type; see The Java
Virtual Machine Specification, Second Edition, page 147: 4.9.4 for
more details. |