0%

window使用visual studio community 2017编译安装openjdk18,并使用clion断点调试openjdk18源码-图文详细

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

从互联网安装

image-20241230095828413

配置根目录

image-20241230095857917

直接连接

image-20241230095922989

选择阿里云镜像

image-20241230095940366

选择安装包

image-20241230095959846

配置环境变量

搜索环境变量

image-20250117103931985

点击环境变量

image-20250117103952617

双击Path

image-20250117104109079

配置环境变量

image-20250117104228485

安装visual studio 2017

下载地址

https://aka.ms/vs/15/release/vs_community.exe

选择C++桌面开发

image-20241230095601656

只选英语

image-20241230095617418

配置安装位置

注意路径不要有空格

image-20241230095642351

安装成功后看到编译工具链

image-20241230101803133

安装前导boot jdk

一般是编译版本的前一个版本(N-1版本),例如本次编译openjdk18,那么前导版本就是openjdk17

下载地址

https://jdk.java.net/archive/

image-20250117104830526

解压

image-20241230100602912

源码编译

进入cygwin命令终端

image-20241230100125425

进入jdk源码目录

1
cd /cygdrive/d/opensource/jdk/

image-20250117104911873

执行配置命令

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

image-20250117103334778

看到执行成功

image-20250117103607193

生成镜像

1
make images CONF=windows-x86_64-server-slowdebug

image-20250117103826770

看到生成成功

image-20250117104302041

测试

进入生成执行命令目录

1
cd build/windows-x86_64-server-slowdebug/

image-20250117104339524

进入jdk目录

1
cd jdk

image-20250117104357199

进入bin目录

image-20250117104420582

打印版本号

可以看到编译成功

image-20250117104437338

安装调试环境

执行命令

1
make vscode-project CONF=windows-x86_64-server-slowdebug

image-20250117105332790

可以看到执行成功

image-20250117110643349

可以看到生成了对应的compile_commands.json文件

image-20250117110712789

安装clion

下载地址

https://www.jetbrains.com/zh-cn/clion/download/#section=windows

使用clion调试openjdk18

打开项目

image-20250117105812634

选择compile_commands.json,点击ok

image-20250117105848111

打开作为一个项目

image-20250117105922309

打开如下

image-20250117110013072

点击设置

image-20250117110031682

配置visual studio工具链

image-20250117110105568

配置编译目标,点击三个点

image-20250117110201441

新增一个

image-20250117110235999

配置如下内容

image-20250117110247942

在配置一个清理策略

image-20250117110311477

分别选中两个,点击右下角的Apply,然后点击OK

image-20250117110339889

点击编辑配置

image-20250117110456283

配置自定义编译应用,选择编译的java,并执行java -version命令

点击右下角Apply,然后点击OK

image-20250117110516879

点击运行

image-20250117110755551

可以看到正在编译

image-20250117110850617

生成输出结果

image-20250117111017246

点击目录切换

image-20250117111101239

指向jdk的根目录

image-20250117111113646

可以看到已经切换成功

image-20250117111148149

找到jdk运行主类,并设置断点

image-20250117111233262

点击调试

image-20250117111300381

恭喜,已经进入断点调试模式

image-20250117111338700

继续执行单步调试

image-20250117111725828

可以看到执行到了打印版本号代码

image-20250117111807051

且已经输出到了控制台

image-20250117111926036

参考文章

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