2013-04-06 4 views
1

Я использую ASM, чтобы ввести некоторые простые инструкции по отслеживанию в методы в моей программе Java, метод ввода метод вышел, метки времени и т.д. ...ASM Java BCI, трассировка значения аргументов метода/возврата метод значения

Это все работы Великий.

Теперь я хочу увеличить это и ввести инструкции для получения значений аргумента метода и возвращаемых значений метода, используя ASM таким образом, который может быть применен к любому методу в целом.

Любые примеры кода, указывающие на меня в правильном направлении, очень ценятся.

ответ

0

ASM аргумент Пример см (https://github.com/scouter-project/scouter/blob/master/scouter.agent.java/src/scouter/agent/asm/CapArgsASM.java)

Type.getArgumentType(desc) // get arguments types. return Type[] 
mv.visitVarInsn(Opcodes.ILOAD, index) // load parameter to stack 

возврата ASM например см (https://github.com/scouter-project/scouter/blob/master/scouter.agent.java/src/scouter/agent/asm/CapReturnASM.java)

public void visitInsn(int opcode) { 
    if ((opcode >= IRETURN && opcode <= RETURN)) { 
     //return value is on the top stack 
    } 
    mv.visitInsn(opcode); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^