jvm15版本源码阅读之本地编译
这里对openjdk的15版本进行本地的编译,然后说明一下调试的设置.
1 编译
由于编译后是要导入clion中的,所以这里参考jetbrain的一篇专门介绍编译jdk并导入clion的文章,该文章的地址为:
https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/
1.1 编译流程
1 下载源码
首先下载15版本的源码,github地址:https://github.com/openjdk/jdk15.git,如果网速慢的话可以直接下载zip源码文件.下载后解压,解压目录就是工程目录.
2 电脑环境的sdk安装
这里只介绍macos系统的安装过程.系统为big sur,版本为11.2.1.
首先是登陆mac应用网站下载安装command line tools for Xcode,本人这里安装的是12.4版本的,然后再安装对应版本的xcode
Xcode相关的安装完后,还需要安装cmake,安装最新版的即可.
读者可以看看自己的电脑,缺什么就安装什么即可.
3 执行configure
在工程目录中执行bash configure - -with-debug-level=slowdebug,如果把之前的两个sdkxcode和command line tools for Xcode安装了,这里就不会出现问题.
4 生成compile_commands.json文件
在工程目录中执行bash make compile-commands,这时就会在 工程目录/build// dir中生成compile_commands.json文件.
5 执行make
在工程目录中实行bash make,生成可执行文件.
6 添加.lldbinit文件
在 工程目录/build//dir目录中添加.lldbinit文件,也就是和compile_commands.json文件在同一个目录中.添加内容为:
br set -n main -o true -G true -C "pro hand -p true -s false SIGSEGV SIGBUS”
把这一行直接复制到.lldbinit文件中即可.
至此,本地源码的编译已经完成,下一步可以导入到clion中了.
1.2 导入到clion
1 配置toolchains,这个是配置cmake的版本,兼容c++14的编译就行,例如本人这里的配置为
2 使用clion以打开目录的形式新建工程,点击之前生成的compile_commands.json文件,以工程的形式打开即可.
这里只能以工程的形式打开,因为没有cmakelists文件.
2 调试设置
种里需要设置调试,整体设置如下
target的设置参考https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/的Step 3: Generate Run Configurations and Build Targets部分,把里面的fastdebug改为slowdebug即可.
五角星标注的是可执行文件,如下所示
就是bash的java命令,后跟一些选项,这里我使用的是—version,当然可以使用—help等,也可以跟一个jar文件.
3 总结
在电脑环境都已齐全的情况下,本地编译需要一些时间.之后导入clion也需要设置一下运行或调试的配置.都完成后就可以进行调试了,或者直接运行也可.