1.6 实战:自己编译JDK 1.6.5 在IDE工具中进行源码调试

我们在阅读OpenJDK源码的过程中,肯定会运行和跟踪调试程序来帮助理解。现在我们已学会了 如何编译一个可调试版本HotSpot虚拟机,并禁用优化,带有符号信息,这样的编译结果已经可以直接 使用GDB在命令行中进行调试了。据笔者所知,不少对Java虚拟机研发接触比较多的开发人员确实就 是使用GDB和VIM编辑器来开发、修改HotSpot源码的,不过相信大多数读者都还是更倾向于在IDE环 境而不是纯文本下阅读、跟踪HotSpot源码。为此,本节将会讲解如何在IDE中进行HotSpot源码调 试。

在本次实战里,笔者采用的IDE是JetBrains的CLion 2019.1,读者可以在JetBrains网站[1]上直接下 载并免费使用30天,如果希望使用其他IDE,譬如Eclipst CDT或者Net-Beans,可以参考本书第2版中 相同章节的内容,为节省篇幅笔者就没有把它放到附录中了。

CLion安装后,新建一个项目,选择“New CMake Project from Sources”,在源码文件夹中填入 OpenJDK源码根目录,此时,CLion已经自动选择好了需要导入的源码,如图1-10所示。点击OK按钮 就会导入源码并自动创建好CMakeLists.txt文件。

这份自动生成的CMakeLists.txt并不能直接使用,OpenJDK本身也没有为任何IDE提供支持,但如 果只是为了能够在CLion中跟踪、阅读源码,而不需要修改重新编译的话,那直接在Run/Debug Configurations中增加一个CMake Application,然后Executable选择我们刚才编译出来的FastDebug或者 SlowDebug版的java命令,运行参数加上-version或者某个Class文件的路径,再把Before launch里面的 Build去掉,就可以开始运行调试了,如图1-11所示。

省略…..