@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); // Don't touch bridge and synthetic methods if ((access & Opcodes.ACC_SYNTHETIC) > 0 || (access & Opcodes.ACC_BRIDGE) > 0) { return mv; } if (name.equals("<clinit>")){ //should not stop a static initializer return mv; } return new KillSwitchMethodAdapter(mv, name, desc); } }
@Override public void visitJumpInsn(int opcode, Label label) { addInstrumentation(); //add instrumentation before of the jump super.visitJumpInsn(opcode, label); }
@Override public void visitLineNumber(int line, Label start) { super.visitLineNumber(line, start); addInstrumentation(); }