通过CLion 调试JDK源码
0. 简述
0.1 使用环境:
宿主机操作系统:Windows 10 专业版
虚拟机软件:VMware® Workstation 16 Pro
虚拟机操作系统:[ubuntu-22.04.1-desktop-amd64.iso](
CLion:2022.2.3
0.2 前言
按照<深入理解Java虚拟机>书中描述,在Clion中调试JDK12源码需要CMakeLists.txt文件,但是目前里面已经没有了jdk12所需的文件。
而Jetbrains官方其实也提供了使用CLion调试JDK源码的解决方案,就是使用Compilation Database
, 详细内容可以参考https://hg.openjdk.java.net/jdk/jdk/raw-file/tip/doc/ide.html 和 https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/
在上一篇<Ubuntu22环境下编译OpenJDK12源码>的基础上,进行下面的操作,就可以实现在CLion中调试JDK源码。
1. 生成compile_commands.json文件
cd /home/gx/sourcecode/jdk # 进入jdk源码根目录
make compile-commands
2. 通过compile_commands.json文件导入源码
在执行命令make compile-commands
之后就可以在build/linux-x86_64-server-fastdebug目录下看到新生成的compile_commands.json
文件,通过Clion打开该文件,在弹出框中选择作为项目(as a project)。
3 切换Root目录
但是此时Clion的目录是linux-x86_64-server-fastdebug,需要切换到源码根目录,Tools–>Compilation Database->Change Project Root
4 自定义构建对象
如图:
5 设置运行配置
如图:
6 调试测试
在JDK源码的java.c源文件中,找到JavaMain主方法,如下图打上断点:
然后在Clion右上角上图位置,点击debug按钮,开始进行调试,如果一切正常,程序会停在断点处。这样就实现了JDK源码的调试!