我试图在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 …Run Code Online (Sandbox Code Playgroud)