Я хотел бы не только отслеживать процесс java, но и использовать новую поддержку трассировки openjdk в systemtap, как трассировку горячих точек, так и трассировку методов.
Соответственно, я установил репозиторий ddebs.ubuntu.com для установки символов отладки ядра - затем я могу вызвать сценарий stap, который использует тапсеты ядра, но еще не java. Я заметил пакет под названием openjdk-7-jdk-dbgsym и попытался установить его, чтобы увидеть, есть ли в нем тапсеты systemtap для openjdk, но это конфликтует с пакетом openjdk-7-dbg (который затем Ubuntu не позволяет мне отчет об ошибке, так как пакет openjdk-7-jdk-dbgsym не с «официальных» серверов.И если я удалю один и установлю другой, это все равно не поможет.
Кто-нибудь успешно сделал это на ubuntu?
редактировать: чтобы успешно собрать systemtap из исходного кода на Ubuntu с поддержкой java byteman, вам необходимо передать
--with-java=/usr/lib/jvm/default-java
(или ваше странное местоположение jvm)
Иначе строить не получится баночки и так нужные. Затем вам нужно выполнить make install, следуя инструкциям в исходном каталоге java/README (и не забудьте изменить путь).
Существует также еще одна опция --with-dyninst, которую я не пробовал, но мог бы «исправить» ее для других режимов вызова.
edit2: ну, он компилируется и даже запускается, но никогда ничего не выводит даже на приведенных примерах и с установленным BYTEMAN_HOME...