Skip to content

liuzhengyang/hsdis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f0bffb7 · Feb 13, 2023

History

7 Commits
Nov 14, 2018
May 24, 2017
May 24, 2017
Feb 13, 2023
May 24, 2017
May 24, 2017
May 24, 2017
May 24, 2017

Repository files navigation

hsdis

Hotspot disassembler extracted from openjdk.

Precondition on linux

To build hsdis on linux you need to make sure you have the standard build tools

apt-get install build-essential

Usage

git clone https://github.com/liuzhengyang/hsdis
cd hsdis
tar -zxvf binutils-2.26.tar.gz
make BINUTILS=binutils-2.26 ARCH=amd64

And then copy hsdis build file to the target folder in JDK.

OSX

sudo cp build/macosx-amd64/hsdis-amd64.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server/

Java11

sudo cp build/macosx-amd64/hsdis-amd64.dylib /Library/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/Home/lib/server

Linux

sudo cp build/linux-amd64/hsdis-amd64.so /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/

After that, you could add -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly in the Java Run Param to see the program's assebmle code. One Example:

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -Xcomp -XX:CompileCommand=compileonly,*VolatileTest.main com.io.lzy.VolatileTest

There is already a prebuild hsdis-amd64 for OSX 64 in build/macosx-amd64/macosx-amd64.dylib and for linux in build/linux-amd64/hsdis-amd64.so and was build for/with Unbuntu 16.04