Я использую ASM для мониторинга доступа к полям (putfield и getfield). (Для putfield) Моя проблема заключается в том, что когда вершина стека является базовым значением (X), а вторая вершина является ссылкой на объект (Y), как я могу вставить некоторые инструкции Java для вызова моего метода со второй ссылкой на объект ( Y) в качестве одного аргумента, и после возврата из моего метода два (X и Y) не будут потеряны?
Таким образом, как я могу получить доступ ко второй верхней ссылке на объект, не затрагивая верхнее значение стека (после моего доступа) в Java на уровне байт-кода Java?
Я хочу использовать dup, но он может обрабатывать только верхнее значение стека. Итак, это работает для getfield, так как значения нет, и я могу напрямую дублировать его.
Есть ли лучший способ сделать это?
Спасибо.