Я пытаюсь написать приборный модуль для Java-программ. Одна конкретная инструментария, которую я собираюсь добавить, - это сбор всех объектов в списке аргументов метода и обработка некоторых из них.java.lang.VerifyError ошибки с использованием Java ASM
В настоящее время, чтобы получить список аргументов объекта, я вывожу все аргументы метода из стека, а затем нажимаю их поодиночке, добавляя между ними инструментальный вызов. Хотя это в основном работает, я вижу некоторые
java.lang.VerifyError, [1] (****) Incompatible argument to function
ошибки типа в больших программах. Выбрасывает, а затем толкает объект обратно в стек, как-то меняет его тип? Альтернативно, есть ли лучшее решение для дублирования «N» аргументов из стека без всплытия?
Написаны инструкции стека jvm, то есть вы не можете нажать 2 поплавка и вызвать метод с двойным. Ошибка заключалась бы в том, чтобы забыть параметр 'this'. В любом случае кажется, что вы либо вызываете неправильную подпись метода, либо имеете неправильные аргументы стека. –
Я гарантировал, что примитивные типы вызываются правильно. Я вижу эту ошибку только для объектов. Что происходит, когда у меня есть бросок, и я поп-толкаю объект? Есть ли какие-то другие угловые случаи, которые я бы пропустил? – arunxls
Я бы знал ничего, кроме неправильного вызова функции, параметров, объекта, результата, чтобы быть ответственным - как говорится в сообщении об ошибке. Попробуйте перезапустить исходный класс и применить исправления до тех пор, пока ошибка не произойдет. –