java的,我想,不仅要追查的java程序,但在SystemTap中使用的OpenJDK跟踪新的支持,无论是热点追踪和方法跟踪。的SystemTap对Ubuntu的
因此i installed安装内核调试符号的ddebs.ubuntu.com存储库 - 然后我可以调用一个使用内核tapsets但不是java的stap脚本。我注意到了一个名为openjdk-7-jdk-dbgsym的包,并试图安装它以查看是否有openjdk的systemtap tapsets,但这与openjdk-7-dbg包相冲突(然后ubuntu不让我bug报告,因为openjdk-7-jdk-dbgsym软件包不是来自'官方'服务器。如果我卸载那一个,并安装其他,它不会帮助。
有没有人成功做到这一点在Ubuntu?
编辑:为了在Ubuntu成功地从源代码编译的SystemTap用java byteman支持你必须通过
--with-java=/usr/lib/jvm/default-java
(或y我们奇怪的JVM的位置)
否则建筑不会做的罐子等需要。然后你必须按照源代码java/README文件中的步骤进行安装(并且不要忘记修改路径)。
还有,我还没有尝试过其他--with-dyninst选项,但可能“修复”,就可以为其他调用模式
EDIT2:嗯,它编译和运行,甚至,但它从来没有输出即使是在给出的实例,并与BYTEMAN_HOME集...
不幸的是,没有一个在Ubuntu上工作,甚至硬编码到/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so的路径,并删除openjdk-7- dbg并安装openjdk-7-jdk-dbgsym。与此同时,我打开了一个错误报告https://bugs.launchpad.net/ubuntu/+source/openjdk-7/+bug/1286895 – i30817
嗯,其实我还没有尝试使用byteman方法,但我已经看过它了并找不到所需的packages/.so。 – i30817
我的意思是在systemtap git的java子目录中提到的libHelperSDT _ *。so和HelperSDT.jar文件。建造后无处可见。 – i30817