我是靠谱客的博主 心灵美帽子,最近开发中收集的这篇文章主要介绍Windows 如何远程调试openjdk 源码 gdbserver gdb 老鸟们真的会了吗一:场景前言 本人openjdk版本 1.8_252 Clion版本2020.2 gdb 版本 自带的,觉得挺不错的,现在分享给大家,希望可以做个参考。

目录

一:场景

二:解决方案大体思路

三:具体实现步骤

前言 本人openjdk版本 1.8_252 Clion版本2020.2 gdb 版本 自带的

1.在linux上进行编译openjdk

2. 编译后的openjdk源码 下载到Windows中

3. 用Clion 导入 使用 new Cmake 方式导入,并等待更新好

4.写个最简单的java代码 ,进行测试,不要包名,因为这个后面会放服务器上

5.把这个java文件放服务器上,位置是 openjdk生成的 bin目录位置,也就是生成的 build 目录下的jdk中bin目录 (这个目录都是生成的,里面就可以看到我们熟悉的 命令 )

6.用bin里面的命令编译我们刚放进去的java文件 ( -g 是为了能生成一些有用的信息)

7. 安装 gdbserver (如果没有gdbserver 需要安装下 )

8.Windows上的Clion配置远程调用

9.在linux上开启 监听

10.Windows中Clion 开启断点 断点进来了 表示成功,下面就可以愉快的玩耍了

提问:有些杠精 说我们知道要在哪里打断点,我怎么知道入口是 main.c 文件???


一:场景

如果你是mac系统 或者类型linux系统上,可以直接用工具进行debug。

可是我是Windows怎么弄呢?怎么调试openjdk呢?

一是 用Windows版本的openjdk进行编译然后debug(问题多多。。。因为要在Windows上模拟linux环境进行编译 需要下载很多软件 还有各种配置 ,本人已放弃。如果有人编译了 Windows版本的openjdk 请发出来 谢谢)

二是 在linux上进行编译,这个相对简单多了(可以参考我之前的那篇 linux上编译openjdk),编译好了,此时怎么弄呢?在Windows上 这里推荐 Clion+gdbserver 远程debug方式。

二:解决方案大体思路

在linux上编译,Windows上借用 Clion+gdb进行远程debug测试

三:具体实现步骤

前言 本人openjdk版本 1.8_252 Clion版本2020.2 gdb 版本 自带的

  1. 在linux上进行编译openjdk

参考: linux编译 openjdk

2. 编译后的openjdk源码 下载到Windows中

3. 用Clion 导入 使用 new Cmake 方式导入,并等待更新好

4.写个最简单的java代码 ,进行测试,不要包名,因为这个后面会放服务器上

public class Test {
    public static void main(String[] args) {
        System.out.println(">>>>>>>>>>>>>>>>"+Thread.currentThread().getName());
    }
}

5.把这个java文件放服务器上,位置是 openjdk生成的 bin目录位置,也就是生成的 build 目录下的jdk中bin目录 (这个目录都是生成的,里面就可以看到我们熟悉的 命令 )

5725998d400dc7bceb64da8e7103476d.png

6.用bin里面的命令编译我们刚放进去的java文件 ( -g 是为了能生成一些有用的信息)

 

javac -g Test.java

7. 安装 gdbserver (如果没有gdbserver 需要安装下 )

yum install -y gdb-gdbserver


8.Windows上的Clion配置远程调用

path mapping 那需要写上对应的目录 ,这个要对好 我都是写到 openjdk 这

9.在linux上开启 监听

gdbserver :1234 java Test

如图表示成功:

10.Windows中Clion 开启断点 断点进来了 表示成功,下面就可以愉快的玩耍了

提问:有些杠精 说我们知道要在哪里打断点,我怎么知道入口是 main.c 文件???

处理:我们可以用gdb 查看,(后续我的视频 或者文档 跟进 openjdk 源码大都都是 经验了 每次 gdb验证下 还是挺麻烦的)

  1. 还在我们生成的bin位置

gdb java    (表示我们要debug java程序)

f81d443554af1d569f016825c622d6a1.png

set args Test   (Test 是我们生成的class文件)

start

b1f2646be703fefdd15d558647713b07.png

可以看到 第一个断点位置 main.c 文件97行。(这下没人杠精了吧 )

最后

以上就是心灵美帽子为你收集整理的Windows 如何远程调试openjdk 源码 gdbserver gdb 老鸟们真的会了吗一:场景前言 本人openjdk版本 1.8_252 Clion版本2020.2 gdb 版本 自带的的全部内容,希望文章能够帮你解决Windows 如何远程调试openjdk 源码 gdbserver gdb 老鸟们真的会了吗一:场景前言 本人openjdk版本 1.8_252 Clion版本2020.2 gdb 版本 自带的所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部