我正在检测一些类并引入一些新的局部变量。现在,当用户在代码中放置断点并停止执行时,可以在 Intellij IDEA 的调试器窗口中看到新引入的局部变量。我该如何隐藏它们?
更新:我将不得不以某种方式从检测代码中删除调试信息,但不知道该怎么做。
更新 2:我正在使用 ASM 库进行检测。
public void visitCode() {
this.mv.visitLdcInsn(stringToPass);
this.mv.visitMethodInsn(Opcodes.INVOKESTATIC, "MyAgentClass", "loadData", "(Ljava/lang/String;)LDataClass;", false);
this.mv.visitVarInsn(Opcodes.ASTORE, this.getDataIndex());
}
public void visitMaxs(int maxStack, int maxLocals) {
if (this.myStartLabel != null && this.myEndLabel != null) {
this.mv.visitLocalVariable("__my__data__", "Ljava/lang/Object;", (String) null, this.myStartLabel, this.myEndLabel, this.getDataIndex());
}
super.visitMaxs(maxStack, maxLocals);
}
__my__data__
显示在 Intellij IDEA 中。