Я новичок в области отладчиков, приборов и JVMTI. Итак, у меня есть несколько вопросов о них.JDI, Java Байт-код и Java-агенты (JWDP, JVMTI)
В чем разница между JDI (Java отладчик интерфейса), JWDP, javaagent и нативного агента (JVMTI). , и где API-интерфейс инструментария java подходит для изображения.
Я использую JDI для перехвата исключений в целевом приложении java. , но я узнал, что JDI недостаточно хорош, если мы говорим о том, как это влияет на производительность целевого приложения. Я читал, что наиболее хорошие приложения делают это с объединением JVMTI с инструментами байтового кода. Но я не могу понять, как можно использовать инструментарий байтового кода с JVMTI. Итак, как мы можем работать с байтовым кодом вместе с JVMTI? Любой пример будет полезен.
Можем ли мы использовать как байтовый код, так и машинный код в java?
Может использоваться статический анализ байтового кода вместе с JVMTI. Если да, то как?
Если у вас возникли вопросы или вопросы, свяжитесь со мной.
Большое спасибо за ваш ответ. Что касается статического анализа, то мой вариант использования - это только то, что если я могу узнать фрагменты кода, которые могут вызывать любые исключения, фактически не запуская целевое приложение. Во всяком случае, я не буду использовать анализ байтового кода в ближайшем будущем. Я был просто любопытным, если анализ байтового кода можно сделать с помощью JVMTI. Если бы вы могли указать на какой-то учебник для этого, это будет полезно. Я уже искал Google для этого, но ничего не нашел. Благодарю. –
Если все, что вас интересует, - это точный сайт, который может генерировать исключение (например, «throw new MyException()»;), тогда вы можете использовать ASM, чтобы просто определить инструкцию ATHROW, а затем испустить некоторые инструменты вокруг него. Однако, если ваша цель состоит в более широком поиске всех возможных сайтов вызовов, которые могут вызывать код, который может генерировать исключение, тогда вам нужно построить статический график вызовов. И для этого я перейду к [саже] (https://sable.github.io/soot/). –