sudo bash configure --with-debug-level=slowdebug --with-target-bits=64 --disable-warnings-as-errors --enable-dtrace --with-jvm-variants=server
参数说明
--with-boot-jdk:指定Bootstrap JDK路径
--with-debug-level:编译级别,可选值为release、fastdebug、slowdebug和optimized,默认值为release,如果我们要调试的话,需要设定为fastdebug或者slowdebug,建议设置为slowdebug
--with-target-bits:指定编译32位还是64位的虚拟机
--disable-warnings-as-errors:避免因为警告而导致编译过程中断
--enable-dtrace:开启一个性能工具
--with-jvm-variants:编译特定模式下的虚拟机,一般这里编译server模式
--with-conf-name:指定编译配置的名称,如果没有指定,则会生成默认的配置名称macosx-x86_64-server-slowdebug,我这里采用默认生成配置
生成Compilation Database
在配置CLion的时候,直接import编译好之后的jdk源码,你会发现头文件都是红色的,无法找到提示,是因为CLion生产的CMakeLists.txt有问题,如果想要解决这个问题就需要修改这个文件,需要有c++功底。
最后通过JetBrains说的利用Compilation Database (https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/) 在CLion中构建OpenJDK解决了这个问题。
sudo make CONF=linux-x86_64-server-slowdebug compile-commands
执行完该命令,就会在${source_root}/build/linux-x86_64-server-slowdebug下生成compile_commands.json文件
编译编译成功 CLion调试sudo make CONF=linux-x86_64-server-slowdebug
配置clion
导入compile_commands.json
配置好Toolchains后,通过File -> Open功能,选中${source_root}/build/macosx-x86_64-server-slowdebug/compile_commands.json,As a project打开,这样就导入了Compilation Database文件,接下来CLion开始进行索引。
配置源码
这时候,你会发现你是看不到源码的,所以下面需要修改项目的根目录,通过Tools -> Compilation Database -> Change Project Root功能,选中你的源码目录,也就是${source_root},这样设置就可以在CLion中看到源代码啦。
${source_root}指的是 openjdk12的根目录 比如/source/openjdk12
debug之前配置
需要在Settings --> Build, Exceution, Deployment --> Custom Build Targets配置构建目标
变量
linux-x86_64-server-slowdebug
Java --version
本文参考文档