Есть ли способ получить номера строк (как в java-файле) из смещения метки?ASM Bytecode - Получить номера строк из смещения метки
@Override
public void visitLabel(Label label){
super.visitLabel(label);
mv.visitFieldInsn(GETSTATIC, "java/lang/System", "out",
"Ljava/io/PrintStream;");
mv.visitLdcInsn("line " + label.getOffset() + " executed");
mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println",
"(Ljava/lang/String;)V", false);
}
Я перезаписаны метод visitLabel в MethodVisitor, чтобы напечатать lebel.getOffset при посещении каждой метки. Я получаю целочисленные значения, но они не такие же, как номера строк в java-файле.
Они должны быть в противном случае отладки не будут работать (для чего они используются) –
Можете ли вы предложить, как извлечь номер строки из смещения метки? TIA – maddie
должен быть номер строки, если вы скомпилировали его с информацией об отладке. –