IDEA 远程 Debug

IDEA 远程 Debug

在这里插入图片描述

工作中经常会遇到开发时正常, 部署线上就出错的问题, 尤其是问题发生在引用的第三方 jar 时, 往往日志是不能定位问题的. 此时, 如果能用本地 IDEA 和代码 debug 调试服务器上的服务的话将会很好,很容易的定位和解决问题, 而 IDEA 其实本身就是支持本地连接远程 JVM 以实现远程 debug 的.

file

0. 环境准备

  • 准备一个基于 maven 的 SpringBoot 项目做为演示, 并打成 jar 包在服务器运行

file

1. 远程服务器增加 JVM 参数开启调试模式

  • 在服务器运行时添加如下参数(命令可以直接从 IDEA copy):
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

或者

-Xdebug  -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
  • 完整命令:
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 test-lsh-0.0.1-SNAPSHOT.jar

或者

java -jar -Xdebug  -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 test-lsh-0.0.1-SNAPSHOT.jar

其中 5005 为服务开放的调试端口, 可以随意指定. 当服务运行时看到如下输出即表示服务以调试模式运行成功.

file

2. IDEA 配置

  • 进入 Edit Configurations

file

或者

file

  • 添加远程连接

file

  • 输入远程服务地址和调试端口(注意是第一步指定的调试端口, 不是服务启动端口)

file

其中:
Debugger Mode:

  • Attach to remote JVM: 连接到远程 JVM
  • Listen to remote JVM: 开启一个端口供远程去连接

Command Line 显示的参数其实就是第一步服务端启动的参数, 可以直接 copy.

  • 启动调试

file

当看到下面输出就表示远程调试已连接

file

3. Debug

  • 首先在本地代码中添加断点

file

file

  • 测试访问 controller, 观察debug 是否成功

请求 http://192.168.3.122:80/test

file
file

请求 http://192.168.3.122:80/test?user=JackLi
file
file
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值