自己动手调试 JDK(CLion)
原创
©著作权归作者所有:来自51CTO博客作者Dongguabai的原创作品,请联系作者获取转载授权,否则将追究法律责任
昨天已经可以自己编译 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 目录即可:
接下来再配置相关的参数:
下面的 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 运行自己的代码!
欢迎关注公众号