window使用visual studio community 2017编译安装openjdk18,并使用clion断点调试openjdk18源码-图文详细
想看JDK源码?还想在window环境下调试?那么请看向这篇文章吧。如果能在window下断点调试openjdk源码那将会非常方便,本文就将整个调试过程图文记录下来。
源码下载
1 | git clone https://github.com/openjdk/jdk.git |
切换到openjdk18分支
1 | git checkout jdk-18+9 |
安装cygwin
下载地址
https://www.cygwin.com/install.html
从互联网安装
配置根目录
直接连接
选择阿里云镜像
选择安装包
配置环境变量
搜索环境变量
点击环境变量
双击Path
配置环境变量
安装visual studio 2017
下载地址
https://aka.ms/vs/15/release/vs_community.exe
选择C++桌面开发
只选英语
配置安装位置
注意路径不要有空格
安装成功后看到编译工具链
安装前导boot jdk
一般是编译版本的前一个版本(N-1版本),例如本次编译openjdk18,那么前导版本就是openjdk17
下载地址
https://jdk.java.net/archive/
解压
源码编译
进入cygwin命令终端
进入jdk源码目录
1 | cd /cygdrive/d/opensource/jdk/ |
执行配置命令
1 | ./configure --with-target-bits=64 --with-debug-level=slowdebug ZIP_DEBUGINFO_FILES=0 --with-jvm-variants=server --with-tools-dir='/cygdrive/f/soft/MicrosoftVisualStudio/2017/Community/VC/Auxiliary/Build' --with-boot-jdk=/cygdrive/d/conf/jdk-17.0.1 --disable-warnings-as-errors |
看到执行成功
生成镜像
1 | make images CONF=windows-x86_64-server-slowdebug |
看到生成成功
测试
进入生成执行命令目录
1 | cd build/windows-x86_64-server-slowdebug/ |
进入jdk目录
1 | cd jdk |
进入bin目录
打印版本号
可以看到编译成功
安装调试环境
执行命令
1 | make vscode-project CONF=windows-x86_64-server-slowdebug |
可以看到执行成功
可以看到生成了对应的compile_commands.json文件
安装clion
下载地址
https://www.jetbrains.com/zh-cn/clion/download/#section=windows
使用clion调试openjdk18
打开项目
选择compile_commands.json,点击ok
打开作为一个项目
打开如下
点击设置
配置visual studio工具链
配置编译目标,点击三个点
新增一个
配置如下内容
在配置一个清理策略
分别选中两个,点击右下角的Apply,然后点击OK
点击编辑配置
配置自定义编译应用,选择编译的java,并执行java -version命令
点击右下角Apply,然后点击OK
点击运行
可以看到正在编译
生成输出结果
点击目录切换
指向jdk的根目录
可以看到已经切换成功
找到jdk运行主类,并设置断点
点击调试
恭喜,已经进入断点调试模式
继续执行单步调试
可以看到执行到了打印版本号代码
且已经输出到了控制台
参考文章
https://openjdk.org/groups/build/doc/building.html
https://jvm-insider.mygraphql.com/zh-cn/latest/appendix-lab-env/build-jdk/build-slow-debug-jdk.html
https://blog.csdn.net/ciqingloveless/article/details/81950308
https://mayflygame.com/2022/05/04/OpenJDK%E8%B0%83%E8%AF%95/
https://juejin.cn/post/7325791449665257524
https://blog.csdn.net/qq_43460743/article/details/129202296