2015-01-30 2 views
1

У меня есть задача отслеживать некоторые приложения Java с помощью динамических зондов (например, dtrace или systemtap). Конечно, это должно быть сделано без перезапуска приложения или перекомпиляции. Это должно позволить динамическую настройку перехватчиков на вызовы методов и внутренние события JVM. В Solaris это можно сделать с помощью dtrace, но не в других системах. Как я могу решить эту задачу?Как отслеживать приложение Java в стиле «dtrace»?

+0

Вы можете попробовать https://github.com/alfredxiao/jackplay, который предназначен именно для того, чтобы разрешить отслеживание без изменения кода или перераспределения. Он также позволяет вам переопределить тело метода в реальном времени JVM. –

ответ

1

На linux (по крайней мере, на fedora и red hat) вы можете сделать это с systemtap, см. this link для получения пояснения. Он использует byteman для отслеживания приложений Java. Хотя вы не можете использовать systemtap на других платформах, чем linux, вы можете добавить byteman в свой проект и использовать его на любых os. Byteman позволяет пользователю вводить пользовательский код в запущенные классы Java, см. documentation.

 Смежные вопросы

  • Нет связанных вопросов^_^