idea 远程调试代码

Preface

一开始, 我只是想让 idea 远程运行代码, 像vscode运行前端一样, 也就是目前 idea 中的 Remote Development (还处于 beta 版本).
remote

不过意外让我发现了 idea 的远程调试功能, 这个功能非常适合测试环境 (快速调试 + 减轻电脑压力 + 方便联调), 更符合我们的使用场景, 让我们快速开始吧.

1. 新增配置

  • Run/Debug Configurations 上点击新增 选择 Remote JVM Debug.
  • 填入远程主机地址: Host
  • 「可选」端口 5005 可以修改, 但服务端务必记得 开放端口
  • 「可选」JDK 版本可选择对应范围
  • 「可选」多个 model 项目, 选择 main 运行类所在的模块 model
  • 拷贝 idea 给我们生成的 Command line arguments... 既命令行参数
  • 保存配置
    在这里插入图片描述

2. 远程服务端运行

我们使用 maven 工具进行打包, 然后传输到服务器上, 使用 java -jar … 或 nohup java -jar … 运行程序 (后者为后台运行)

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 AAA.jar

-agentlib:jdwp 开启调试环境 (jdwp = java debug wire protocol)

-Xrunjdwpagentlib:jdwp 参数的选项有:

  • transport=dt_socket 表示连接JVM的方式. 调试数据传输方式 socket / shmem 共享内存 (Win)
  • address=5005 TCP/IP 端口暴露, 用来调试服务端
  • suspend=y 启动时是否中断. 在执行应用程序之前等待您连接, 如果是 ‘y’,告诉 JVM 等待调试器连接后才开始执行, 否则立即执行
  • server=y/n 调试过程区分 服务端/客服端

2.1. 扩展问题: -Xdebug -Xrunjdwp-agentlib:jdwp 有什么区别

Reference: stackoverflow

在 jdk 5 之前, 使用 -Xdebug-Xrunjdwp 参数, 而这些选项在以后的版本中仍然有效, 但它将以解释模式而不是 JIT 模式运行, 这会更慢.

从 jdk 5 开始最好使用 -agentlib:jdwp 单一选项.

3. 开始调试

在这里插入图片描述

idea 中以 debug 模式运行我们的配置即可

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值