Windows 如何远程调试openjdk 源码 gdbserver 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行。(这下没人杠精了吧 )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫猫大神

有帮助的话,请打赏官人一下哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值