Я работаю с BCEL, пытаясь добавить вызов System.out.println () в первую строку каждого метода (кроме методов init и clinit), чтобы увидеть, какие методы вызываются и когда
Это мойcode atm (с некоторыми псевдо):
Instruction ins = null;
f (first instruction is ALOAD_0) {
ins = get next instruction
} else {
ins = this instruction;
}
list.insert(ins, new GETSTATIC(cgen.getConstantPool().addFieldref("java/lang/System", "out", "Ljava/io/PrintStream;")));
list.insert(ins, new LDC(cgen.getConstantPool().addUtf8("debug message")));
list.insert(ins, new INVOKEVIRTUAL(cgen.getConstantPool().addMethodref("java/io/PrintStream", "println", "(Ljava/lang/String;)V")));
Отредактированный класс выглядит хорошо в байт-коде, но по какой-то причине класс не будет работать после этого.Есть что-то, что я делаю не так?