str*_*t54 7 java macos profiler dtrace
我试图在macOS Sierra 10.12上使用DTrace配置Java应用程序.我正在使用JDK8:
?> ~ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
?> ~ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
我的最终目标是跟踪特定包的所有Java方法条目和出口.
HotSpot VM和Mac OS X端口中的DTrace探测器使用HotSpot DTrace探测器似乎表明,事实上这应该在macOS上得到支持.但是,即使我的Java应用程序正在运行,也没有hotspot可用的探测器并且jstack()似乎失败:
?> ~ pgrep java
24564
?> ~ sudo dtrace -ln 'hotspot*:::'
dtrace: system integrity protection is on, some features will not be available
ID PROVIDER MODULE FUNCTION NAME
dtrace: failed to match hotspot*:::: No probe matches description
?> ~ sudo dtrace -n 'syscall::read:entry /execname == "java"/ { jstack(); }'
dtrace: system integrity protection is on, some features will not be available
dtrace: description 'syscall::read:entry ' matched 1 probe
dtrace: error on enabled probe ID 1 (ID 153: syscall::read:entry): invalid address (0xe2e3275e) in action #1
dtrace: error on enabled probe ID 1 (ID 153: syscall::read:entry): invalid address (0xe2e3275e) in action #1
dtrace: error on enabled probe ID 1 (ID 153: syscall::read:entry): invalid address (0xe2e3275e) in action #1
…
Run Code Online (Sandbox Code Playgroud)
提供了路径libjvm.dylib的dtrace命令似乎并没有帮助:
?> ~ ll "$JAVA_HOME/jre/lib/server/"
total 31616
-rw-rw-r-- 1 root wheel 1.4K Jun 22 15:02 Xusage.txt
-rwxrwxr-x 1 root wheel 15K Jun 22 15:01 libjsig.dylib
-rwxrwxr-x 1 root wheel 15M Jun 22 15:02 libjvm.dylib
?> ~ sudo dtrace -L "$JAVA_HOME/jre/lib/server/" -ln 'hotspot*:::'
dtrace: system integrity protection is on, some features will not be available
ID PROVIDER MODULE FUNCTION NAME
dtrace: failed to match hotspot*:::: No probe matches description
Run Code Online (Sandbox Code Playgroud)
那我错过了什么?如何使用DTrace工具分析Java应用程序?
好吧,我太快速地将系统完整性保护作为可能的原因.
在csrutil enable --without dtrace恢复操作系统中执行后(在启动过程中按⌘R),hotspot探针现在只显示:
?> ~ sudo dtrace -ln 'hotspot*:::' | wc -l
1039
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
974 次 |
| 最近记录: |