Вопросы по теме 'java-bytecode-asm'
Получить java.lang.IllegalAccessError при доступе к частному полю внешнего класса через ASM Java Bytecode
в отражении к приватному полю можно получить доступ через getDeclaredField() и setAccessible(true). Как получить доступ к частному полю внешнего класса через API байт-кода Objectweb ASM? Я установил, чтобы получить приватное поле из чего-то вроде,...
3950 просмотров
schedule
30.11.2023
Реализация абстрактных методов во время выполнения?
Скажем, у меня есть абстрактный класс:
abstract class Foo extends Bar {
public abstract int foo();
}
который я хочу расширить во время выполнения, чтобы создать объект класса. Надеюсь, что у меня может быть динамически сгенерированный...
3677 просмотров
schedule
18.08.2023
Проблемы с пониманием переименования метода с помощью байт-кода ASM в Java
В настоящее время я пытаюсь понять, как работает библиотека ASM. Я решил попробовать переименовать все методы данного класса, поэтому я написал мини-посетителя MethodRenamer :
class MethodRenamer extends ClassAdapter {
public...
1440 просмотров
schedule
28.12.2023
Сравнение инфраструктуры динамического манипулирования байт-кодом Java
Есть несколько фреймворков для динамической генерации байт-кода, манипулирования и переплетения (BCEL, CGLIB, javassist, ASM, MPS). Я хочу узнать о них, но поскольку у меня не так много времени, чтобы знать все подробности обо всех из них, я хотел бы...
8078 просмотров
schedule
26.05.2023
Как избежать ошибки VerifyError: «Ожидается найти унифицированный объект в стеке» для уже инициализированных объектов
Я разрабатываю механизм инструментирования с помощью ASM, и мне нужно перехватить вызов методов, которые получают параметры типа массива. Для этой цели я реализовал MethodVisitor и в его visitMethodInsn я проверяю, указывает ли параметр desc...
1093 просмотров
schedule
17.05.2023
Внедрение метода Java _до_ вызова другого метода
Я использую ASM и хочу переписать что-то вроде:
someMethod().targetMethod(args...)
to:
someMethod().injectedMethod(arg).targetMethod(args...)
Проблема в том, что я не знаю, какой метод был раньше, я знаю только целевой метод (поэтому...
1580 просмотров
schedule
25.11.2023
как получить список сопоставлений констант в пуле констант класса 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 просмотров
schedule
06.04.2024
Ожидание кадра карты стека - 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 просмотров
schedule
17.02.2023
Создайте ClassReader из анонимного класса, созданного Unsafe
Я попытался создать ASM ClassReader из анонимного класса, но не смог.
Класс Anonymous создан:
Class cls = Unsafe.defineAnonymousClass(Hoster, byte[], null);
cls.getName() is class code.jit.asm.example.Callee/629106582 , которое...
230 просмотров
schedule
29.09.2023
Загрузить сгенерированный класс ASM во время выполнения
Я написал некоторый байт-код через ASM (сгенерированный класс реализует некоторый известный интерфейс).
У меня также есть некоторые зависимости от других классов.
Теперь я хочу подключить массив байтов к некоторому классу.
Как я могу...
997 просмотров
schedule
06.10.2022
Java: список полей, используемых в методе
В Java, как я могу получить поля, которые используются в методе?
По сути, это те же вопросы, что и в . НЕТ . Я не хочу перечислять поля из класса, а перечислять поля, которые используются в данном методе класса.
Пример:
public class A {...
446 просмотров
schedule
17.04.2022
вставить 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 просмотров
schedule
29.08.2023
Object Web, посетите классы, которые передаются как значение класса параметра
Я хочу посетить классы, которые передаются в методе
Я попробовал visitMethodInsn в моем MethodVisitor , но я получаю сигнатуру метода, а не класс, переданный при его выполнении.
общедоступный статический класс C { }
public static class B...
32 просмотров
schedule
29.10.2022