编译前准备
安装hg版本控制
yum install -y hg
安装依赖库
yum install -y "Development Tools"
yum install -y gcc g++ kernel-devel
yum? -y install libXtst-devel libXt-devel libXrender-devel libXi-devel
准备JDK
为编译虚拟机,首先必须获得虚拟机的源码,大家可以使用下面的命令获取JDK10的源码。
推荐使用较新的版本,因为老版本的编译脚本可能在某平台上存在问题。
hg clone http://hg.openjdk.java.net/jdk10/jdk10
准备一个BootJDK。Boot JDK用于OpenJDK编译的执行。这里用到的是JDK8,也推荐各位使用JDK8作为JDK10的Boot JDK
准备编译
准备就绪之后,就可以开始编译了。
进入解压后的openjdk目录:
执行configure脚本配置编译选项,本人的配置如下:
bash configure --with-debug-level=slowdebug --enable-dtrace --with-jvm-variants=server --with-target-bits=64 --with-memory-size=3000 --disable-warnings-as-errors --with-boot-jdk=/usr/local/src/jdk1.8 --with-native-debug-symbols=internal
配置成功后会显示下面的信息:
编译JVM
下载镜像文件
bash get_source.sh
编译
make images
此次编译将会生成debug版本的虚拟机,编译的过程可能会花费比较长的时间,一般来说,编译一个版本可能要15-45分钟的,视计算机性能而定。
当编译成功后,会有以下输出:
进入build目录,可以看到编译的结果,下面显示了debug版本的编译结果:
有了debug版本的虚拟机,就可以使用gdb对虚拟机进行调试了。
Java虚拟机调试
进入build/linux-x86_64-normal-server-slowdebug/jdk/bin/目录,用gdb启动Java可执行程序,随后就进到了gdb命令行环境:
gdb -args ./java -version
在main函数中打断点
略。。。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。