Я использую ASM для мониторинга создания объектов в Java. В настоящее время я воспринимаю вызов init как индикатор создания нового объекта и запускаю программу из
invoke XXX.init
to
dup;
invoke XXX.init;
call_my_method(Object)
Моя идея состоит в том, чтобы продублировать копию newObjectReference, и после инициализации этого объекта я вызываю свой метод, чтобы сохранить этот объект.
Однако во время выполнения есть исключение:
java.lang.VerifyError, Expecting to find unitialized object on stack.
Когда я использовал параметр «-noverify», во время выполнения, если есть экземпляр потока, выдается второе исключение:
Exception in thread "main" java.lang.IllegalThreadStateException
at java.lang.Thread.start(Unknown Source)
at test.ThreadTest.test
Во втором случае я уверен, что нет вызова start() потока, кроме как в исходной программе.
Есть ли лучший способ отслеживать создание нового объекта?
Большое спасибо.
call_my_method(Object)
? - person vijay   schedule 19.10.2012