gpt4 book ai didi

java - ASM Java BCI,跟踪方法参数值/方法返回值

转载 作者:行者123 更新时间:2023-12-01 04:45:53 25 4
gpt4 key购买 nike

我正在使用 ASM 将一些简单的跟踪指令注入(inject)到我的 Java 程序中的方法中,方法进入,方法退出,时间戳等...

这一切都很好。

我现在想对此进行扩充,并注入(inject)指令来捕获方法参数值和方法返回值,以一种可以普遍应用于任何方法的方式使用 ASM。

非常感谢任何为我指明正确方向的代码示例。

最佳答案

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);
}

关于java - ASM Java BCI,跟踪方法参数值/方法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com