Top Inners Fields Constructors Methods
org.glassfish.pfl.tf.tools.enhancer

public Class ClassTracer

extends TFEnhanceAdapter
Class Inheritance
Imports
java.util.HashSet, .Set, org.glassfish.pfl.basic.contain.SynchronizedHolder, org.glassfish.pfl.tf.spi.EnhancedClassData, .MethodMonitor, .Util, org.glassfish.pfl.tf.spi.annotation.TraceEnhanceLevel, org.objectweb.asm.ClassVisitor, .Label, .MethodVisitor, .Opcodes, .Type, org.objectweb.asm.commons.LocalVariablesSorter, org.objectweb.asm.tree.LabelNode, .LocalVariableNode

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static enum
private class
public static enum

Field Summary

Modifier and TypeField and Description
private ClassTracer.State
private final EnhancedClassData
private static final int
private final Util

Constructor Summary

AccessConstructor and Description
public
ClassTracer(final Util util, final EnhancedClassData ecd, final ClassVisitor cv)

Method Summary

Modifier and TypeMethod and Description
private void
info(final int level, final String msg)

public MethodVisitor
visitMethod(final int access, final String name, final String desc, final String sig, final String[] exceptions)

Overrides org.glassfish.pfl.tf.tools.enhancer.TFEnhanceAdapter.visitMethod.

Visits a method of the class.

Inherited from org.glassfish.pfl.tf.tools.enhancer.TFEnhanceAdapter:
visitAnnotationvisitFieldvisitInnerClass

Field Detail

currentback to summary
private ClassTracer.State current
ecdback to summary
private final EnhancedClassData ecd

Hides org.glassfish.pfl.tf.tools.enhancer.TFEnhanceAdapter.ecd.

MAX_EXTRA_STACKback to summary
private static final int MAX_EXTRA_STACK
utilback to summary
private final Util util

Constructor Detail

ClassTracerback to summary
public ClassTracer(final Util util, final EnhancedClassData ecd, final ClassVisitor cv)

Method Detail

infoback to summary
private void info(final int level, final String msg)
visitMethodback to summary
public MethodVisitor visitMethod(final int access, final String name, final String desc, final String sig, final String[] exceptions)

Overrides org.glassfish.pfl.tf.tools.enhancer.TFEnhanceAdapter.visitMethod.

Doc from org.objectweb.asm.ClassVisitor.visitMethod.

Visits a method of the class. This method must return a new MethodVisitor instance (or null) each time it is called, i.e., it should not return a previously returned visitor.

Annotations
@Override
org.glassfish.pfl.tf.tools.enhancer back to summary

public final Enum ClassTracer.Input

extends Enum<ClassTracer.Input>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final ClassTracer.Input
public static final ClassTracer.Input
public static final ClassTracer.Input
public static final ClassTracer.Input

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static ClassTracer.Input
public static ClassTracer.Input[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ACONST_NULL_BCback to summary
public static final ClassTracer.Input ACONST_NULL_BC
ICONST_0_BCback to summary
public static final ClassTracer.Input ICONST_0_BC
INFO_METHOD_CALLback to summary
public static final ClassTracer.Input INFO_METHOD_CALL
OTHERback to summary
public static final ClassTracer.Input OTHER

Constructor Detail

Inputback to summary
private Input()

Method Detail

valueOfback to summary
public static ClassTracer.Input valueOf(String name)
valuesback to summary
public static ClassTracer.Input[] values()
org.glassfish.pfl.tf.tools.enhancer back to summary

private Class ClassTracer.MonitoredMethodEnhancer

extends MethodVisitor
Class Inheritance

Field Summary

Modifier and TypeField and Description
private LocalVariableNode
private LocalVariableNode
private LocalVariableNode
private final int
private final Label
private final LabelNode
private final String
private final Label
private final LabelNode
private final Label
private final LabelNode
private final int
private final MethodVisitor
private LocalVariablesSorter
private final String
private final Set<Integer>
private final Label
private final LabelNode
Inherited from org.objectweb.asm.MethodVisitor:
apimv

Constructor Summary

AccessConstructor and Description
public
MonitoredMethodEnhancer(final int access, final String name, final String desc, final MethodVisitor mv)

Method Summary

Modifier and TypeMethod and Description
private void
emitExceptionReport(final int excIndex)

private void
public void
public void
visitCode()

Overrides org.objectweb.asm.MethodVisitor.visitCode.

Starts the visit of the method's code, if any (i.e. non abstract method).

public void
visitFieldInsn(final int opcode, final String owner, final String name, final String desc)

Overrides org.objectweb.asm.MethodVisitor.visitFieldInsn.

Visits a field instruction.

public void
visitIincInsn(final int var, final int increment)

Overrides org.objectweb.asm.MethodVisitor.visitIincInsn.

Visits an IINC instruction.

public void
visitInsn(final int opcode)

Overrides org.objectweb.asm.MethodVisitor.visitInsn.

Visits a zero operand instruction.

public void
visitIntInsn(final int opcode, final int operand)

Overrides org.objectweb.asm.MethodVisitor.visitIntInsn.

Visits an instruction with a single int operand.

public void
visitJumpInsn(final int opcode, final Label label)

Overrides org.objectweb.asm.MethodVisitor.visitJumpInsn.

Visits a jump instruction.

public void
visitLdcInsn(final Object cst)

Overrides org.objectweb.asm.MethodVisitor.visitLdcInsn.

Visits a LDC instruction.

public void
visitLookupSwitchInsn(final Label dflt, final int[] keys, final Label[] labels)

Overrides org.objectweb.asm.MethodVisitor.visitLookupSwitchInsn.

Visits a LOOKUPSWITCH instruction.

public void
visitMaxs(final int maxStack, final int maxLocals)

Overrides org.objectweb.asm.MethodVisitor.visitMaxs.

Visits the maximum stack size and the maximum number of local variables of the method.

public void
visitMethodInsn(final int opcode, final String owner, final String name, final String desc, final boolean isInterface)

Overrides org.objectweb.asm.MethodVisitor.visitMethodInsn.

Visits a method instruction.

public void
visitMultiANewArrayInsn(final String desc, final int dims)

Overrides org.objectweb.asm.MethodVisitor.visitMultiANewArrayInsn.

Visits a MULTIANEWARRAY instruction.

public void
visitTableSwitchInsn(final int min, final int max, final Label dflt, final Label[] labels)

Overrides org.objectweb.asm.MethodVisitor.visitTableSwitchInsn.

Visits a TABLESWITCH instruction.

public void
visitTypeInsn(final int opcode, final String type)

Overrides org.objectweb.asm.MethodVisitor.visitTypeInsn.

Visits a type instruction.

public void
visitVarInsn(final int opcode, final int var)

Overrides org.objectweb.asm.MethodVisitor.visitVarInsn.

Visits a local variable instruction.

Inherited from org.objectweb.asm.MethodVisitor:
getDelegatevisitAnnotableParameterCountvisitAnnotationvisitAnnotationDefaultvisitAttributevisitEndvisitFramevisitInsnAnnotationvisitInvokeDynamicInsnvisitLabelvisitLineNumbervisitLocalVariablevisitLocalVariableAnnotationvisitMethodInsnvisitParametervisitParameterAnnotationvisitTryCatchAnnotationvisitTryCatchBlockvisitTypeAnnotation

Field Detail

__excback to summary
private LocalVariableNode __exc
__mmback to summary
private LocalVariableNode __mm
__resultback to summary
private LocalVariableNode __result
accessback to summary
private final int access
afterExcStoreback to summary
private final Label afterExcStore
afterExcStoreNodeback to summary
private final LabelNode afterExcStoreNode
descback to summary
private final String desc
endback to summary
private final Label end
endNodeback to summary
private final LabelNode endNode
excHandlerback to summary
private final Label excHandler
excHandlerNodeback to summary
private final LabelNode excHandlerNode
identValback to summary
private final int identVal
lmvback to summary
private final MethodVisitor lmv
lvsback to summary
private LocalVariablesSorter lvs
nameback to summary
private final String name
returnOpcodesback to summary
private final Set<Integer> returnOpcodes
startback to summary
private final Label start
startNodeback to summary
private final LabelNode startNode

Constructor Detail

MonitoredMethodEnhancerback to summary
public MonitoredMethodEnhancer(final int access, final String name, final String desc, final MethodVisitor mv)

Method Detail

emitExceptionReportback to summary
private void emitExceptionReport(final int excIndex)
emitFinallyback to summary
private void emitFinally()
setLocalVariablesSorterback to summary
public void setLocalVariablesSorter(final LocalVariablesSorter lvs)
visitCodeback to summary
public void visitCode()

Overrides org.objectweb.asm.MethodVisitor.visitCode.

Doc from org.objectweb.asm.MethodVisitor.visitCode.

Starts the visit of the method's code, if any (i.e. non abstract method).

Annotations
@Override
visitFieldInsnback to summary
public void visitFieldInsn(final int opcode, final String owner, final String name, final String desc)

Overrides org.objectweb.asm.MethodVisitor.visitFieldInsn.

Doc from org.objectweb.asm.MethodVisitor.visitFieldInsn.

Visits a field instruction. A field instruction is an instruction that loads or stores the value of a field of an object.

Annotations
@Override
visitIincInsnback to summary
public void visitIincInsn(final int var, final int increment)

Overrides org.objectweb.asm.MethodVisitor.visitIincInsn.

Doc from org.objectweb.asm.MethodVisitor.visitIincInsn.

Visits an IINC instruction.

Annotations
@Override
visitInsnback to summary
public void visitInsn(final int opcode)

Overrides org.objectweb.asm.MethodVisitor.visitInsn.

Doc from org.objectweb.asm.MethodVisitor.visitInsn.

Visits a zero operand instruction.

Annotations
@Override
visitIntInsnback to summary
public void visitIntInsn(final int opcode, final int operand)

Overrides org.objectweb.asm.MethodVisitor.visitIntInsn.

Doc from org.objectweb.asm.MethodVisitor.visitIntInsn.

Visits an instruction with a single int operand.

Annotations
@Override
visitJumpInsnback to summary
public void visitJumpInsn(final int opcode, final Label label)

Overrides org.objectweb.asm.MethodVisitor.visitJumpInsn.

Doc from org.objectweb.asm.MethodVisitor.visitJumpInsn.

Visits a jump instruction. A jump instruction is an instruction that may jump to another instruction.

Annotations
@Override
visitLdcInsnback to summary
public void visitLdcInsn(final Object cst)

Overrides org.objectweb.asm.MethodVisitor.visitLdcInsn.

Doc from org.objectweb.asm.MethodVisitor.visitLdcInsn.

Visits a LDC instruction. Note that new constant types may be added in future versions of the Java Virtual Machine. To easily detect new constant types, implementations of this method should check for unexpected constant types, like this:

if (cst instanceof Integer) {
    // ...
} else if (cst instanceof Float) {
    // ...
} else if (cst instanceof Long) {
    // ...
} else if (cst instanceof Double) {
    // ...
} else if (cst instanceof String) {
    // ...
} else if (cst instanceof Type) {
    int sort = ((Type) cst).getSort();
    if (sort == Type.OBJECT) {
        // ...
    } else if (sort == Type.ARRAY) {
        // ...
    } else if (sort == Type.METHOD) {
        // ...
    } else {
        // throw an exception
    }
} else if (cst instanceof Handle) {
    // ...
} else if (cst instanceof ConstantDynamic) {
    // ...
} else {
    // throw an exception
}
Annotations
@Override
visitLookupSwitchInsnback to summary
public void visitLookupSwitchInsn(final Label dflt, final int[] keys, final Label[] labels)

Overrides org.objectweb.asm.MethodVisitor.visitLookupSwitchInsn.

Doc from org.objectweb.asm.MethodVisitor.visitLookupSwitchInsn.

Visits a LOOKUPSWITCH instruction.

Annotations
@Override
visitMaxsback to summary
public void visitMaxs(final int maxStack, final int maxLocals)

Overrides org.objectweb.asm.MethodVisitor.visitMaxs.

Doc from org.objectweb.asm.MethodVisitor.visitMaxs.

Visits the maximum stack size and the maximum number of local variables of the method.

Annotations
@Override
visitMethodInsnback to summary
public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc, final boolean isInterface)

Overrides org.objectweb.asm.MethodVisitor.visitMethodInsn.

Doc from org.objectweb.asm.MethodVisitor.visitMethodInsn.

Visits a method instruction. A method instruction is an instruction that invokes a method.

Annotations
@Override
visitMultiANewArrayInsnback to summary
public void visitMultiANewArrayInsn(final String desc, final int dims)

Overrides org.objectweb.asm.MethodVisitor.visitMultiANewArrayInsn.

Doc from org.objectweb.asm.MethodVisitor.visitMultiANewArrayInsn.

Visits a MULTIANEWARRAY instruction.

Annotations
@Override
visitTableSwitchInsnback to summary
public void visitTableSwitchInsn(final int min, final int max, final Label dflt, final Label[] labels)

Overrides org.objectweb.asm.MethodVisitor.visitTableSwitchInsn.

Doc from org.objectweb.asm.MethodVisitor.visitTableSwitchInsn.

Visits a TABLESWITCH instruction.

Annotations
@Override
visitTypeInsnback to summary
public void visitTypeInsn(final int opcode, final String type)

Overrides org.objectweb.asm.MethodVisitor.visitTypeInsn.

Doc from org.objectweb.asm.MethodVisitor.visitTypeInsn.

Visits a type instruction. A type instruction is an instruction that takes the internal name of a class as parameter (see Type#getInternalName()).

Annotations
@Override
visitVarInsnback to summary
public void visitVarInsn(final int opcode, final int var)

Overrides org.objectweb.asm.MethodVisitor.visitVarInsn.

Doc from org.objectweb.asm.MethodVisitor.visitVarInsn.

Visits a local variable instruction. A local variable instruction is an instruction that loads or stores the value of a local variable.

Annotations
@Override
org.glassfish.pfl.tf.tools.enhancer back to summary

public sealed Enum ClassTracer.State

extends Enum<ClassTracer.State>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final ClassTracer.State
public static final ClassTracer.State
public static final ClassTracer.State

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static void
info(final Util util, final int level, final String msg)

public abstract ClassTracer.State
public static ClassTracer.State
public static ClassTracer.State[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

NORMALback to summary
public static final ClassTracer.State NORMAL
NULL1back to summary
public static final ClassTracer.State NULL1
NULL2back to summary
public static final ClassTracer.State NULL2

Constructor Detail

Stateback to summary
private State()

Method Detail

infoback to summary
private static void info(final Util util, final int level, final String msg)
transitionback to summary
public abstract ClassTracer.State transition(Util util, MethodVisitor mv, ClassTracer.Input input)
valueOfback to summary
public static ClassTracer.State valueOf(String name)
valuesback to summary
public static ClassTracer.State[] values()