Я инструментирую файл класса во время выполнения для различных целей. Для этого я использую агент JVMTI. Моя стратегия инструментирования метода состоит в том, чтобы вызвать функцию RetransformClasses
для вызова ClassFileLoadHook
. Эта стратегия отлично работает для всех методов, которые вызываются после момента инструментирования, потому что фактическое инструментирование происходит при последующем вызове функции, но она не работает для любого метода, который не имеет дополнительных вызовов, таких как функция main
в программе.
Я хочу инструментировать метод на лету во время его выполнения. Мне нужна какая-то процедура, такая как замена в стеке (OSR) инструментированного кода. Есть ли какая-либо стратегия в JVMTI или любой другой подход????
PS: я открыт для редактирования/исправления исходного кода OpenJDK, если это может помочь.
main
, я хотел бы настроить его так, чтобы он порождал несколько потоков и объединял их (если, конечно, это можно распараллелить). Вот почему я столкнулся с инструментированием функций одиночного вызова. - person Saqib Ahmed   schedule 02.02.2017