前言:
上篇文章我们介绍了如何在Ubuntu中编译openjdk,包括hotspotJVM,编译完之后大家就要开始阅读jvm源码了,为了让大家能够流畅地阅读和调试jvm源码,这篇介绍下如何搭建jvm源码调试环境,使之能够在IDE中调试。
1.笔者环境:
源码:openjdk11-hotspot
IDE:clion
系统:Ubuntu19.04
2.搭建过程:
2.1将源码载入到clion
首先我们打开clion,选择File->New CMake Project from Sources,弹出打开项目窗口后选择到/opt/jdk/jdk8u60/hotspot作为jvm源码的根目录(这是我的源码目录,读者选择自己的源码目录即可),然后一路点击next即可。
导入后如下:
我们随便打开一个源码类,比如我打开g1里面的bufferingOopClosure.cpp类,随便打个断点,debug一下,发现根本调试不了,日志打印如下错误:
这是因为我们只是导入项目,还没有构建调试环境,当然是调试不了的,下面进行调试环境的构建。
2.2调试环境构建
点击右上角的Edit Configuration,弹出如下界面:
点击CMake Application,创建一个CMake引用,Executable选项选择我们编译好的java文件:
接下来,我们把Build选项去掉,我们在Debug的时候不需要build项目,然后点击OK就可以了。
到这里,我们的源码调试环境就基本构建好了,这时,我们随便找个源码文件,打上断点,debug就可以跳入断点调试成功了。