차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
bci_-_the_power_of_bytecode_instrumentation_in_java [2017/06/16 11:26]
koov [One Simple but Powerful Example of BCI]
bci_-_the_power_of_bytecode_instrumentation_in_java [2017/06/16 11:30] (현재)
koov [java.lang.Exception에 내가 필요한 바이트 코드 삽입하기]
줄 500: 줄 500:
  if (name.equals(""​)) { // Constructor  if (name.equals(""​)) { // Constructor
  System.out.println("​Redefine Constructor..."​);​  System.out.println("​Redefine Constructor..."​);​
- ExceptionConstructorAdviceAdapter ecaa = + ExceptionConstructorAdviceAdapter ecaa = new ExceptionConstructorAdviceAdapter(access,​ name, desc, mv);
- +
- new ExceptionConstructorAdviceAdapter(access,​ name, desc, mv);+
  return ecaa;  return ecaa;
  }  }
줄 524: 줄 522:
  if (opcode == RETURN) {  if (opcode == RETURN) {
  mv.visitVarInsn(ALOAD,​ 0);  mv.visitVarInsn(ALOAD,​ 0);
- mv.visitMethodInsn(INVOKESTATIC,​ + mv.visitMethodInsn(INVOKESTATIC,​ "​flowlite/​exception2/​ExceptionCallBack",​ "​exceptionOccurred",​ "​(Ljava/​lang/​Exception;​)V"​);​
- +
- "​flowlite/​exception2/​ExceptionCallBack",​ +
- +
- "​exceptionOccurred",​ "​(Ljava/​lang/​Exception;​)V"​);​+
  mv.visitEnd();​  mv.visitEnd();​
  }  }
줄 558: 줄 552:
  if(opcode == RETURN) {  if(opcode == RETURN) {
  mv.visitVarInsn(ALOAD,​ 0);  mv.visitVarInsn(ALOAD,​ 0);
- mv.visitMethodInsn(INVOKESTATIC,​ + mv.visitMethodInsn(INVOKESTATIC,​ "​flowlite/​exception2/​ExceptionCallBack",​ "​exceptionOccurred",​ "​(Ljava/​lang/​Exception;​)V"​);​
- "​flowlite/​exception2/​ExceptionCallBack",​ +
- "​exceptionOccurred",​ "​(Ljava/​lang/​Exception;​)V"​);​+
  mv.visitEnd();​  mv.visitEnd();​
  }  }
줄 576: 줄 568:
 // access flags 33 // access flags 33
 public class Exception extends Throwable { public class Exception extends Throwable {
- 
  
 // access flags 24 // access flags 24
  • bci_-_the_power_of_bytecode_instrumentation_in_java.txt
  • 마지막으로 수정됨: 2017/06/16 11:30
  • 저자 koov