hsdis icon indicating copy to clipboard operation
hsdis copied to clipboard

hotspot disassembler hsdis

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/

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