自己動手調試 JDK(CLion)

相關文章

昨天已經可以自己編譯 JDK 了。但是很明顯還缺一個重要的環節,那就是調試 JDK。調試 JDK 有朋友說可以使用 GDB,但是對於我們應用層開發者來說,使用 IDE 進行調試可能會習慣點,而且交互更加友好。經過對比 VS Code、Xcode 和 CLion。最終選擇了 CLion。

CLion 官方下載地址:https://www.jetbrains.com/clion/

在 CLion 中引入 OpenJDK 工程

在這裏插入圖片描述

具體引入的工程是我昨天從 http://jdk.java.net/ 上下載的 OpenJDK 12。目錄如下:

在這裏插入圖片描述

這裏引入的時候,直接選擇 openjdk 目錄即可:

在這裏插入圖片描述

接下來再配置相關的參數:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JCcjm6vF-1590647395709)(./4.png)]

在這裏插入圖片描述

下面的 Build 要去掉,還要注意這裏要選擇昨天已經編譯好了的 JDK 的 java 文件(Unix 可執行文件):
在這裏插入圖片描述

運行 OpenJDK,開始調試

在 java.c 的 JavaMain 函數中打一個斷點,Debug 啓動:

在這裏插入圖片描述

發現已經進去了。

調試自己編寫的 Java 代碼

先隨便寫一個 Hello.java 程序:

public class Hello {

    public static void main(String[] args) {
       System.out.print("hello");
    }
}
➜  bin pwd
/Users/dongguabai/Desktop/temp/openjdk12/openjdk/build/macosx-x86_64-serverANDclient-slowdebug/jdk/bin
➜  bin ./javac Hello.java 
Hello.java:1: 錯誤: 寫入Hello時出錯: /Users/dongguabai/Desktop/temp/openjdk12/openjdk/build/macosx-x86_64-serverANDclient-slowdebug/jdk/bin/Hello.class
public class Hello {
       ^
1 個錯誤
➜  bin sudo ./javac Hello.java
Password:

再在 CLion 進行配置:

在這裏插入圖片描述

Debug 運行:

在這裏插入圖片描述

控制檯輸出:

/Users/dongguabai/Desktop/temp/openjdk12/openjdk/build/macosx-x86_64-serverANDclient-slowdebug/jdk/bin/java Hello
Signal: SIGSEGV (signal SIGSEGV)
Signal: SIGSEGV (signal SIGSEGV)
Signal: SIGSEGV (signal SIGSEGV)
hello
Process finished with exit code 0

也就是說目前已經實現了可以通過調試 OpenJDK 運行自己的代碼!

References

  • https://juejin.im/post/5da135ff518825083d3ba76b

歡迎關注公衆號
​​​​​​在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章