Clion怎么导入OpenJDK11源码并调试

本篇文章给大家分享的是有关Clion怎么导入OpenJDK11源码并调试,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联服务项目包括濮阳网站建设、濮阳网站制作、濮阳网页制作以及濮阳网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,濮阳网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到濮阳省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

导入源码到CLION

打开CLION -> New CMake Project from Sources

然后选择JDK源码目录,然后按默认勾选,点OK,如下图所示:

Clion怎么导入OpenJDK11源码并调试

调整CMakeList.txt

如果直接按默认的CMakeList.txt来, 会发现任意打开一个代码, 都是全面飘红.

保留下来的CMakeList.txt 主要有两部分:

一.include_directories

这个是为了构建代码索引, 在Clion中看起来不是全面飘红

二.add_executable

这个是为了能在Clion中创建执行程序, 可以直接执行我们的java程序

然后原有的test目录都删除掉

完整的CMakeList.txt因为大长,就不复制,可前进github查看:

https://github.com/xiaodaojava/openjkd11-CmakeList

开始调试

在右上角,和idea一样的位置,创建一个Cmake Application

Clion怎么导入OpenJDK11源码并调试

然后我们把断点打到jdk11/src/java.base/share/native/libjli/java.c 394行

如下图所示:

Clion怎么导入OpenJDK11源码并调试

然后点击debug运行:

可以看到进入断点,并且在Debug面板可以看到我们传入的-version参数

Clion怎么导入OpenJDK11源码并调试

在调试过程中,会遇到error: No current target; cannot handle signals until you have a valid target and process.这个错, 先不管, 直接继续运行

最终会在控制台看到如下输出:

Clion怎么导入OpenJDK11源码并调试

LLDB的Signal: SIGSEGV (signal SIGSEGV)

解决上面出现的LLDB异常暂停的错误,需要我们在入口断点处也就是进入到394行时就输入如下命令

process handle --pass true --stop false SIGSEGVprocess handle --pass true --stop false SIGBUS

如下图所示:

Clion怎么导入OpenJDK11源码并调试

然后放过断点继续运行,可以看到, 这次程序没有意外暂停, 而且在控制台输出

Clion怎么导入OpenJDK11源码并调试

开始的调试并不麻烦,也只传了一个-version参数做测试. 后面我们要编写java程序, 并且观察虚拟机是如何执行我们的java代码,大家一起加油!

以上就是Clion怎么导入OpenJDK11源码并调试,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


文章标题:Clion怎么导入OpenJDK11源码并调试
文章转载:http://pwwzsj.com/article/jgcpsg.html