Я пытаюсь создать инструмент, который может захватывать все чтения и записи, сделанные с помощью Java-программы. Кроме того, я хотел бы знать, какие поля какого объекта доступны / изменены.
Я сейчас смотрю на: -
1) java.lang.instrument
Я не мог сделать много с этим. Я не мог понять, как написать агент, который может получить доступ к запущенной программе и создать наблюдение за различными объектами / полями и всем, что связано. Буду признателен, если у вас есть идея или информация по этому поводу.
2) jvmti
Я посмотрел на jvmti и попытался создать инструмент jvmti, но я понял, что для получения объектов мне понадобится JVMTI_EVENT_OBJECT_ALLOC - потенциальная возможность. Но я понял, что это не так. Более того, я прочитал, что это событие не вызывается для команды new . Следовательно, на данный момент даже это не представляется возможным.
Итак, я хотел бы знать, знаете ли вы, ребята, какой-либо способ сделать то, что я хочу сделать, используя вышеупомянутые методы или любой другой метод / инструмент, который вам известен?
ПРИМЕЧАНИЕ. У меня нет доступа к исходному коду приложения. Все, у меня есть файлы классов.