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