当前位置: 代码迷 >> Solaris >> OpenSolaris下用DTrace跟踪Java,得不到结果
  详细解决方案

OpenSolaris下用DTrace跟踪Java,得不到结果

热度:10047   发布时间:2013-02-26 00:00:00.0
OpenSolaris上用DTrace跟踪Java,得不到结果?
最近要研究用DTrace跟踪Java。先初步运行JDK 6里面带的DTrace例子脚本跟踪JDK Demo,结果任何probe返回值都只有0,或者没有返回。我用的是OpenSolaris 2008.11。

以下是我已经做过的:


hanbf@opensolaris:~$ java -version
java version "1.6.0_10"
Java(TM) Platform, Standard Edition for Business (build 1.6.0_10-b33)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode)



hanbf@opensolaris:~$ dtrace -V
dtrace: Sun D 1.6.2


hanbf@opensolaris:~/java/sample/dtrace/hotspot$ pfexec ./hotspot_calls_tree.d -v -c "java -XX:+ExtendedDTraceProbes -jar /export/home/hanbf/java/demo/jfc/Java2D/Java2Demo.jar"

Stability attributes for script ./hotspot_calls_tree.d:

Minimum Probe Description Attributes
Identifier Names: Private
Data Semantics: Private
Dependency Class: ISA

Minimum Statement Attributes
Identifier Names: Unstable
Data Semantics: Unstable
Dependency Class: Common

BEGIN hotspot probes tracing
之后,Java2D的demo运行了10分钟,DTrace没有任何输出。


我还试验了跟踪GC,一样的结果:
hanbf@opensolaris:~/java/sample/dtrace/hotspot$ pfexec ./gc_time_stat.d -c "java -jar /export/home/hanbf/java/demo/jfc/Java2D/Java2Demo.jar"
BEGIN hotspot GC tracing


GC statistics, time: 2009 Mar 22 22:02:21

manager | pool | total time
---
total | 0

manager | pool | # of calls
---
total | 0


程序运行了一段时间,刷新出的结果始终是0。


很疑惑,我做错了什么吗?希望有经验的版友帮忙,谢谢了!


------最佳解决方案--------------------------------------------------------
我对dtrace跟踪应用程序不是很熟,不过我已经将你的问题转发给了我的同事,希望他们能帮助你,有答案后我会post上来。
------其他解决方案--------------------------------------------------------
多谢hotsolaris的帮助,今天找到了答案,是OpenSolaris的一个bug,具体可以参见下面的链接。

http://opensolaris.org/jive/thread.jspa?messageID=318395

再次感谢。
------其他解决方案--------------------------------------------------------
是的,在Nevada上不存在这样的问题。
  相关解决方案