跟踪 java 字节码流

2023-08-24Java开发问题
20

本文介绍了跟踪 java 字节码流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想查看它正在执行的 JVM 的当前(字节码)指令流.经过一番谷歌搜索,我发现 jvm 调试版本提供了 -XX:+TraceBytecodes 选项(参见 这里).但是,提到的热点 JVM 调试构建链接已失效,我无法在线找到调试构建:/

I would like to see the current (bytecode) instruction stream of the JVM it is executing. After some googleing, I found that the jvm debug build offers the -XX:+TraceBytecodesoption (see here). However, the mentioned link to the hotspot JVM debug build is dead and I could not find a debug build online :/

是否有另一种方法可以跟踪 jvm 字节码流,或者有人可以指出我正确的方向吗?我正在运行 64 位 ubuntu 16.04.

Is there another way to trace the jvm bytecode stream or can someone point me in the right direction? I'm running 64 bit ubuntu 16.04.

P.S:我知道,打印出完整的指令流会非常缓慢.不过,我是古玩

P.S: I know, its going to be painfully slow to print out the complete instruction stream. However, I am curios

推荐答案

-XX:+TraceBytecodes 选项正是您要找的.它在 HotSpot JVM 的调试版本中可用.您可以轻松地自己构建 JVM - 只是 HotSpot,甚至不是 JDK.

-XX:+TraceBytecodes option is exactly what are you looking for. It is available in debug builds of HotSpot JVM. You can easily build JVM yourself - just HotSpot, not even JDK.

  1. 从 OpenJDK 8 项目中克隆热点存储库

  1. Clone hotspot repository from OpenJDK 8 project

hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot

  • 构建 '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
    

    您可以添加 HOTSPOT_BUILD_JOBS=N 以在 N 个并行进程中运行编译.

    You may add HOTSPOT_BUILD_JOBS=N to run compilation in N parallel processes.

    运行它

    export ALT_JAVA_HOME=/usr/java/jdk1.8.0_102
    ../build/linux/linux_amd64_compiler2/fastdebug/hotspot -XX:+TraceBytecodes MainClass
    

  • 这篇关于跟踪 java 字节码流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

    The End

    相关推荐

    如何使用 JAVA 向 COM PORT 发送数据?
    How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
    2024-08-25 Java开发问题
    21

    如何使报表页面方向更改为“rtl"?
    How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
    2024-08-25 Java开发问题
    19

    在 Eclipse 项目中使用西里尔文 .properties 文件
    Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
    2024-08-25 Java开发问题
    18

    有没有办法在 Java 中检测 RTL 语言?
    Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
    2024-08-25 Java开发问题
    11

    如何在 Java 中从 DB 加载资源包消息?
    How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
    2024-08-25 Java开发问题
    13

    如何更改 Java 中的默认语言环境设置以使其保持一致?
    How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
    2024-08-25 Java开发问题
    13