1. 程式人生 > >Java虛擬機器(JVM原始碼):搭建OpenJDK(10)原始碼除錯環境

Java虛擬機器(JVM原始碼):搭建OpenJDK(10)原始碼除錯環境

為什麼要自己除錯

在前面的文章,已經介紹了如何編譯自己的OpenJDK
但是光擁有了自己的JDK版本肯定是不夠的。
為了深入瞭解Java例項的建立、初始化和執行流程以及內部實現原理,DEBUG是必不可少的必殺技。
所以,作為搞技術的有必要學習如何除錯JVM原始碼。


一、搭建前準備

我這裡針對的是我自己的環境,您可以根據你自己的環境,去搭建,道理都是一樣的。

  • OS:Mac系統
  • IDE:Clion。下載地址
  • 程式碼:OpenJDK10

首先你得安裝一個Clion,因為HotSpot虛擬機器是C++寫的。

二、驗證Clion是否正確安裝

你需要建一個新的小Demo,看看Clion是否能用。

這裡寫圖片描述

你只需要新建一個專案。

這裡寫圖片描述

Clion就會自動給你生成一個HelloWorld的專案。
如果執行能夠正常輸出,那麼Clion就Ok,如果不能,你就自己調一調。
這裡寫圖片描述

三、匯入專案

注意:你這裡一定是要匯入src下面的hotspot資料夾。千萬不要把src匯入進去了,否則你在配置run configuration的時候,會發現target找不到。

  • File > Import Project
  • 一定要匯入/Users/wangdong/Develop/OpenJdk/openjdk/src/hotspot

這裡寫圖片描述

匯入成功後,是這樣的效果
雖然有些許報錯,但是不影響使用。

這裡寫圖片描述

四、編輯配置

如下圖編輯DEBUG配置資訊
1. Executable 選擇之前build出的映象裡的java可執行檔案(i.e. build/macosx-x86_64-normal-server-slowdebug/jdk/bin/java)
2. Program arguments填寫-version,輸出Java版本
3. Before launch 注意:這裡一定要移除Build,否則會報錯無法除錯

這裡寫圖片描述

五、除錯原始碼

hotspot/share/runtime/thread.cpp檔案的Threads::create_vm

方法內部打斷點

這裡寫圖片描述

好啦,到這裡就可以除錯環境就搭建好了。
後續,我們會一起來Debug,在最新的Jdk10的世界探索。