Описание тега java-bytecode-asm

ASM - это библиотека Java, используемая для манипулирования и создания байт-кода JVM.
1 ответ

Какие значения могут получить параметры отладки visitSource в ASM ClassVisitor?

Метод visitCode в asm's ClassVisitor принимает параметр отладки, типизированный как String public final void visitSource(final String file, final String debug) Согласно JavaDoc debug - дополнительная отладочная информация для вычисления соответствия…
06 авг '13 в 14:47
1 ответ

Как отлаживать агент Java

На данный момент есть возможность запустить JVM с агентом: -javaagent:somejar.jar таким образом, чтобы запустить агент Java, который я написал как, я должен положить его в банку. поэтому он ограничен в отладке. Есть ли способ отладки агента Java в I…
2 ответа

ASM - перехват доступа к полям за пределами метода

В настоящее время я использую ASM для перехвата всех попыток изменить значения полей в целевом приложении. Это работает, как и ожидалось, поскольку ASM позволяет добавлять или добавлять инструкции к сегментам кода метода или конструктора. Однако мне…
29 дек '12 в 15:37
1 ответ

Как получить и использовать тип класса из класса Java, который я динамически создал во время выполнения с использованием ASM?

Я хотел бы расширить класс, получить литерал класса, использовать его в качестве параметра типа или привести к нему. У меня уже есть обходной путь, но мне все еще интересно. В настоящее время я могу определить класс во время выполнения с ASM, создат…
1 ответ

Доступ к закрытым внутренним классам в Java ASM

У меня есть класс, который содержит несколько внутренних классов. Я хотел бы создать дополнительные внутренние классы, которые взаимодействуют с частными внутренними классами времени компиляции, используя библиотеку ASM. Мой код выглядит так: public…
03 мар '16 в 23:53
1 ответ

Реализация метода methodNode "visitMethodInsn" в библиотеке ASM

Это тело visitMethodInsn метод MethodNode учебный класс: @Override public void visitMethodInsn( final int opcode, final @InternalForm String owner, final @Identifier String name, final @MethodDescriptor String descriptor, final boolean isInterface) …
24 июн '18 в 09:20
3 ответа

Javac не может найти импорт

У меня проблемы с компиляцией файла с помощью javac. Моя команда для компиляции: C:\Work>javac -classpath "%CLASSPATH%;C:\Users\Me\Downloads\asm-4.1-bin\asm-4.1\src" wDump.java Результаты в: wDump.java:3: error: package org.objectweb.asm.attrs do…
06 июл '13 в 04:55
0 ответов

Определение одной конкретной локальной переменной

Допустим, у меня есть класс, экземпляр которого должен быть передан всем методам, либо через аргумент, либо через функцию получения. package asmvisit; public class B { public void foo(int x, Crucial c){ c.value = x; } public void bar(int c){ Crucial…
1 ответ

Создать метод с использованием ASM

Используя ASM, мне нужно изменить метод, затем мне нужно вставить в него два метода. Я получил модификацию в порядке, но как мне создать метод? Нужен ли мне отдельный MethodVisitor, или я могу использовать тот же, но назвать что-то еще?
2 ответа

Java ASM Байт-код Модификация-Изменение тела метода

У меня есть метод класса в банке, тело которого я хочу обменять на свое. В этом случае я просто хочу, чтобы метод распечатал "GOT IT" на консоли и вернул true; Я использую системный загрузчик для загрузки классов банку. Я использую отражение, чтобы …
2 ответа

Как получить байт-код в виде байтового массива из класса

Учитывая произвольный Class экземпляр, в том числе тот, который генерируется во время выполнения (нет .class файл на диске), есть ли способ получить байты класса?
28 янв '16 в 20:07
2 ответа

Java ASM, как прочитать значение байт-кода LOAD или STORE

Я работаю с asm (здесь документы http://asm.ow2.org/asm40/javadoc/user/), более конкретно, я пытаюсь динамически инструментировать некоторый код. Моя проблема в том, что я не знаю, как и если я могу через то, что предлагает asm, чтобы прочитать факт…
26 ноя '13 в 12:42
1 ответ

ASM объединяет два объекта-значения в интерпретаторе

Я продолжаю исследовать эмуляцию метода и получать реальное значение при прохождении инструкции ILOAD. После помощи Хольгера с Интерпретатором и после добавления новых операций с локальной переменной в main() метод, который я застрял с merge(V a, V …
15 фев '18 в 21:25
1 ответ

ASM Bytecode - получает номера строк из смещения метки

Есть ли способ получить номера строк (как в файле Java) из смещения метки? @Override public void visitLabel(Label label){ super.visitLabel(label); mv.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;"); mv.visitLdcInsn("lin…
10 фев '17 в 20:19
0 ответов

ASM4/5: как я могу встроить исходный код в ASM4 / 5

Я собираюсь трансформировать (манипулировать) множество классов и позволить легкую отладку и прозрачную передачу изменений, примененных к коду, я хочу добавить исходный код Java, эквивалентный манипулируемому классу. Чтобы добавить код Java, я мог б…
06 окт '15 в 08:01
2 ответа

JVM: неверный индекс 1 в LocalVariableTable

Я пытаюсь скомпилировать следующий код с помощью специального компилятора: public static void main([String] args) { long i = 2L i *= 2L System out println i } Результат компиляции при использовании javapэтот байт-код: public static void main(java.la…
27 фев '15 в 08:30
1 ответ

Как использовать visitLdcInsn для загрузки объекта

Я использую ASM для внедрения кода, и мне повезло, что во время стресс-теста я заметил, что вижу некоторое снижение производительности, поскольку код, который я написал, выполняет много статических вызовов, чтобы оптимизировать его, я пытался кэширо…
2 ответа

Класс Frame ASM не имеет универсального типа

Документация ASM (pdf) гласит, что Frame класс имеет универсальный тип, предоставляя пример использования: Frame<BasicValue>, (на стр. 119, если необходимо) Глядя на источник, мы видим, что это объявление Frame<V extends Value>, Но по к…
29 май '16 в 18:13
1 ответ

Почему ASM не может определить правильные максимумы для моего генерирующего класса?

Я использую ASM 3.1 для создания фиктивного класса. Он имеет только простой конструктор и никаких других методов: public class TestAsm { public static void main(String... args) throws Throwable { ClassWriter sw = new ClassWriter(ClassWriter.COMPUTE_…
06 янв '13 в 09:20
2 ответа

Инструментарий ASM ByteCode, какой метод выполняется

Я использую ASM Bytecode Library для инструментов Java-классов с использованием pre-main. Как мы получаем имя метода? Заранее спасибо...
06 фев '13 в 06:37