Вопросы по теме 'java-bytecode-asm'

Получить java.lang.IllegalAccessError при доступе к частному полю внешнего класса через ASM Java Bytecode
в отражении к приватному полю можно получить доступ через getDeclaredField() и setAccessible(true). Как получить доступ к частному полю внешнего класса через API байт-кода Objectweb ASM? Я установил, чтобы получить приватное поле из чего-то вроде,...
3950 просмотров

Реализация абстрактных методов во время выполнения?
Скажем, у меня есть абстрактный класс: abstract class Foo extends Bar { public abstract int foo(); } который я хочу расширить во время выполнения, чтобы создать объект класса. Надеюсь, что у меня может быть динамически сгенерированный...
3677 просмотров
schedule 18.08.2023

Проблемы с пониманием переименования метода с помощью байт-кода ASM в Java
В настоящее время я пытаюсь понять, как работает библиотека ASM. Я решил попробовать переименовать все методы данного класса, поэтому я написал мини-посетителя MethodRenamer : class MethodRenamer extends ClassAdapter { public...
1440 просмотров

Сравнение инфраструктуры динамического манипулирования байт-кодом Java
Есть несколько фреймворков для динамической генерации байт-кода, манипулирования и переплетения (BCEL, CGLIB, javassist, ASM, MPS). Я хочу узнать о них, но поскольку у меня не так много времени, чтобы знать все подробности обо всех из них, я хотел бы...
8078 просмотров

Как избежать ошибки VerifyError: «Ожидается найти унифицированный объект в стеке» для уже инициализированных объектов
Я разрабатываю механизм инструментирования с помощью ASM, и мне нужно перехватить вызов методов, которые получают параметры типа массива. Для этой цели я реализовал MethodVisitor и в его visitMethodInsn я проверяю, указывает ли параметр desc...
1093 просмотров
schedule 17.05.2023

Внедрение метода Java _до_ вызова другого метода
Я использую ASM и хочу переписать что-то вроде: someMethod().targetMethod(args...) to: someMethod().injectedMethod(arg).targetMethod(args...) Проблема в том, что я не знаю, какой метод был раньше, я знаю только целевой метод (поэтому...
1580 просмотров

как получить список сопоставлений констант в пуле констант класса Java?
когда я запускаю javap -c Address.class > Address.txt для определенного класса, Я получаю кучу вывода с #<NUMBER> в качестве индекса для постоянного пула Compiled from "Address.java" public class test.Address extends test.Entity {...
789 просмотров
schedule 10.06.2023

Удалить исключение из тела метода с помощью ASM
Вступление: У меня есть (запутанный) МЕТОД, который я напечатал с помощью ASM, и результат был следующим: METHOD: m(ZB)Lcc; -------------------------------------- L0: { ALOAD_0 GETFIELD d/x I LDC 2036719157 IMUL ISTORE...
904 просмотров

Ожидание кадра карты стека - Java 8
Я получаю эту ошибку «Ожидается кадр карты стека в этом месте». Я использую Java 8. Я знаю, что для Java 7 есть обходной путь для использования -XX:-UseSplitVerifier для использования менее строгого метода проверки. Однако эта опция была удалена в...
1932 просмотров
schedule 27.05.2023

Проблема COMPUTE_FRAMES с картами ASM и stackframe в сгенерированном коде
Я пишу генератор кода для компилятора, который я использую в качестве примера в классе компилятора, который я преподаю. Мы используем ASM 5.0.3 для генерации кода JVM. Я могу оценить большинство прямых выражений и операторов, некоторые из которых...
886 просмотров
schedule 22.03.2023

Встраивание tryCatchBlock приводит к тому, что размер стека текущего кадра не соответствует исключению карты стека.
Я использую ASM для встраивания тела Callee::calcualte(int,int)int , содержащего блок try-catch, в метод Caller::test . Сгенерированный байт-код выглядит нормально, но проверка не удалась из-за исключения: Exception in thread "main"...
1958 просмотров

Создайте ClassReader из анонимного класса, созданного Unsafe
Я попытался создать ASM ClassReader из анонимного класса, но не смог. Класс Anonymous создан: Class cls = Unsafe.defineAnonymousClass(Hoster, byte[], null); cls.getName() is class code.jit.asm.example.Callee/629106582 , которое...
230 просмотров

Загрузить сгенерированный класс ASM во время выполнения
Я написал некоторый байт-код через ASM (сгенерированный класс реализует некоторый известный интерфейс). У меня также есть некоторые зависимости от других классов. Теперь я хочу подключить массив байтов к некоторому классу. Как я могу...
997 просмотров
schedule 06.10.2022

Java: список полей, используемых в методе
В Java, как я могу получить поля, которые используются в методе? По сути, это те же вопросы, что и в . НЕТ . Я не хочу перечислять поля из класса, а перечислять поля, которые используются в данном методе класса. Пример: public class A {...
446 просмотров

вставить FrameNode с помощью ASM
Как мне вставить этот фреймузел в байт-код? FRAME FULL [java/lang/String [C java/lang/String T I I [C] [] Моя первая попытка была такой: mn.instructions.insertBefore(random, new FrameNode(Opcodes.F_FULL, 1 /**IDK**/, new Object[]{...
194 просмотров
schedule 19.12.2022

Получение VerifyError при добавлении блока try/catch в байт-код через ASM
В своем Java-агенте я инструментирую классы с помощью ASM. Я пытаюсь обернуть определенные методы с помощью try/catch, а также отследить methodEnter и methodExit . С "-noverify" код работает отлично. Без этой опции он завершается с ошибкой...
223 просмотров
schedule 13.05.2024

Язык ассемблера в Jasmin - получение синтаксической ошибки
В шпаклевке я пытаюсь создать программу Jasmin, которая при сборке и запуске как программа Java выводит целое число «431». Когда я пытаюсь собрать программу, консоль говорит, что в строке 11 есть синтаксическая ошибка. Мне трудно понять, что это...
462 просмотров
schedule 01.06.2023

Именование переменной Java ASM GeneratorAdapter
Я создаю простой класс и не могу ввести правильное имя переменной. Версия ASM: 5.2 . Вот код: package com.test; import org.objectweb.asm.*; import org.objectweb.asm.commons.GeneratorAdapter; import org.objectweb.asm.commons.Method; import...
482 просмотров
schedule 15.08.2023

Java ASM java.lang.NoSuchMethodError
Я новичок в Java ASM. Я пытаюсь использовать методы с использованием агента Java и ASM. Но я получаю сообщение об ошибке, как показано ниже: Exception in thread "main" java.lang.NoSuchMethodError:...
88 просмотров

Object Web, посетите классы, которые передаются как значение класса параметра
Я хочу посетить классы, которые передаются в методе Я попробовал visitMethodInsn в моем MethodVisitor , но я получаю сигнатуру метода, а не класс, переданный при его выполнении. общедоступный статический класс C { } public static class B...
32 просмотров
schedule 29.10.2022