Clion导入OpenJDK8源码阅读(支持函数跳转)

编程

本文环境基于Ubuntu 20.04

一、准备工作

1.1 下载OpenJDK8源代码

本人是通过AdoptJDK的github仓库下载的,AdoptJDK基本可以理解为OpenJDK,因为OpenJDK的仓库太难找了,下这个是一样的。

1.2 安装JDK7

JDK的编译需要用到上一个版本的JDK,我们这里要编译JDK8的话就需要安装JDK7。

这里你可以选择用Oracle提供的JDK7安装包,或者从github下载

1.3 去掉环境变量中的JAVA_HOME

这是文档的要求,咱也不知道为啥,照做就是了,最终的要求就是命令行输入java -version提示命令不存在

二、开始编译

2.1 配置

进入OpenJDK8根目录,找到这个文件~/jdk8u/hotsport/make/linux/makefiles/gcc.make,将下边这行注释掉,不然警告会变成错误导致编译失败

#WARNINGS_ARE_ERRORS = -Werror

然后执行下列命令

bash ./configure --with-boot-jdk=/home/iceberg/Program/Java/openjdk-1.7.0 --enable-debug --with-jvm-variants=server

--with-boot-jdk指的是你JDK7的地址。

更多的参数配置,请参考官方的编译文档

然后控制台就开始疯狂输出信息,中途会遇到很多库的缺失,但是都会有提示告诉你应该怎么做,比如下边这种

大部分提示都是正确的,但是上图是错的,问题就在于libX11-dev的X应该是小写,把这里改了就对了。

然后就是apt install完之后继续./configure,一直循环,知道出现下图,就表示配置成功了

2.2 安装compiledb

原因和安装步骤详见这篇文章

2.3 编译

执行下列命令

compiledb make JOBS=8 all

JOBS=8表示八核编译,根据你的实际情况修改

2.4 测试

编译完成后,进入build/linux-x86_64-normal-server-fastdebug/jdk/bin/java目录,运行

./java -version

能看到消息提示,则编译成功

三、使用Clion导入

直接open整个OpenJDK文件夹即可,等待导入完成之后就可以开始愉快的阅读了~

理论上来说我们也是可以通过Clion调试JVM源码的,具体步骤可以参考这里,整体流程都是一致的。

我配置了一下发现是可以进入断点的,但是行数似乎有点不对,由于调试JVM对于我来说没什么卵用,所以这里就不继续尝试了,有搞定的朋友欢迎留言~

参考文章:

1、http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html

2、https://zonghaishang.github.io/2018/10/26/Ubuntu18.0.4.1编译openjdk8/index.html

以上是 Clion导入OpenJDK8源码阅读(支持函数跳转) 的全部内容, 来源链接: utcz.com/z/517399.html

回到顶部