我想看到它正在执行的JVM的当前(字节码)指令流.经过一些googleing,我发现jvm debug build提供了-XX:+TraceBytecodes选项(见这里).但是,提到的热点JVM调试版本的链接已经死了,我无法在线找到调试版本:/
有没有其他方法来跟踪jvm字节码流或有人指出我正确的方向?我正在运行64位ubuntu 16.04.
PS:我知道,打印出完整的指令流会很痛苦.但是,我很好奇
-XX:+TraceBytecodes选项正是你在寻找什么.它在HotSpot JVM的调试版本中可用.您可以自己轻松构建JVM - 只需HotSpot,甚至不是JDK.
从OpenJDK 8项目克隆热点存储库
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot
Run Code Online (Sandbox Code Playgroud)构建'fastdebug'JVM(假设已经安装了JDK /usr/java/jdk1.8.0_102)
cd hotspot/make
make ALT_BOOTDIR=/usr/java/jdk1.8.0_102 ARCH_DATA_MODEL=64 fastdebug
Run Code Online (Sandbox Code Playgroud)
您可以添加HOTSPOT_BUILD_JOBS=N以N并行进程运行编译.
运行
export ALT_JAVA_HOME=/usr/java/jdk1.8.0_102
../build/linux/linux_amd64_compiler2/fastdebug/hotspot -XX:+TraceBytecodes MainClass
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
667 次 |
| 最近记录: |