====== Build ======
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/
cd jdk8u
sh ./get_source.sh
sh ./configure --with-debug-level=slowdebug --disable-zip-debug-info
====== Options ======
* - -XX:+UnlockExperimentalVMOptions
* - -Xprintflags
* - -XX+PrintFlagsWithComments
* - -XX:+PrintFlagsInitial
* - -XX:+PrintFlagsFinal
* - -XX:+CountBytecodes
* - -XX:+PrintBytecodeHistogram
* - -XX:+Printinterpreter
* - -XX:+TraceBytecodes
* - -XX:StopInterpreterAt=
* - set `b breakpoint` at GDB
* - -XX:CompileCommand="break "
* - -XX:CompileCommand="print "
====== Template Intepreter ======
This requires hsdis:
cd hotspot/src/share/tools/hsdis/
wget http://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.xz
tar xvf binutils-2.33.1.tar.xz
make all64 BINUTILS=binutils-2.33.1
cp build/linux-amd64/hsdis-amd64.so /same/path/to/libjvm.so
./java -XX:+PrintInterpreter Hello
====== GDB ======
* - `call help()`
* - `call pns($sp, $rbp, $pc)`
====== Reference ======
http://www.progdoc.de/papers/JavaOne2014/javaone2014_con3138.html