Возможно ли сбросить байт-код с помощью java ASM? - PullRequest
0 голосов
/ 15 января 2020

Я изучаю Java ASM, вставляя в метод несколько простых инструкций, таких как println. Можно ли сбросить динамически инструментированный байт-код, чтобы я мог проверить правильность?

1 Ответ

0 голосов
/ 17 января 2020

Вы можете использовать TraceClassVisitor для достижения этой цели:

StringWriter sw = new StringWriter();
ClassVisitor tracer = new TraceClassVisitor(writer,new PrintWriter(sw));
ClassVisitor visitor = new YourClassVisitor(tracer, className);
ClassVisitor checker = new CheckClassAdapter(visitor, true);
cr.accept(checker, ClassReader.EXPAND_FRAMES);
System.out.println(sw.toString());
...