Java プロセスをトレースするだけでなく、systemtap での openjdk トレースの新しいサポート、ホットスポット トレースとメソッド トレースの両方を使用したいと考えています。
したがって、ddebs.ubuntu.com リポジトリをインストールして、カーネル デバッグ シンボルをインストールしました。その後、カーネル タップセットを使用するが、Java タップセットを使用しない stap スクリプトを呼び出すことができます。openjdk-7-jdk-dbgsym という名前のパッケージに気付き、それをインストールして、これに openjdk 用の systemtap タップセットがあるかどうかを確認しようとしましたが、これは openjdk-7-dbg パッケージと競合します (その後、ubuntu では許可されません)。 openjdk-7-jdk-dbgsym パッケージは「公式」サーバーからのものではないため、バグ レポート. 1 つをアンインストールしてもう 1 つをインストールしても、とにかく役に立ちません。
ubuntuでこれを成功させた人はいますか?
編集: java byteman をサポートする ubuntu でソースから systemtap を正常にビルドするには、
--with-java=/usr/lib/jvm/default-java
(またはあなたの奇妙なjvmの場所)
そうしないと、ビルドがjarを実行しないため、必要になります。次に、ソース dir java/README ファイルの手順に従って make install を実行する必要があります (パスを変更することを忘れないでください)。
別の --with-dyninst オプションもありますが、試したことはありませんが、他の呼び出しモードでは「修正」される可能性があります
edit2: まあ、それはコンパイルして実行さえしますが、与えられた例で BYTEMAN_HOME が設定されていても何も出力しません...