IDEA 远程调试

IDEA 远程调试,像运行本地代码一样调试远程主机上的程序,以排查远程程序的BUG或代码执行流程。

作者:王克锋
出处:https://kefeng.wang/2018/03/06/idea-remote-debug/
版权:自由转载-非商用-非衍生-保持署名,转载请标明作者和出处。

1 概述

原理:本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息。
被调试程序的远程虚拟机:作为 Debug 服务端,监听 Debug 调试指令。jdwp是Java Debug Wire Protocol的缩写。
调试程序的本地虚拟机:IDEA 中配置的 Remote Server,指定 Debug 服务器的Host:Port,以供 Debug 客户端程序连接。

2 设置

2.1 IDEA 中指定 Debug 服务器

  • 点击主窗口菜单 Run / Edit Configurations,打开“Run/Debug Configurations”窗口;
  • 点击工具栏上的“+”按钮,下拉菜单中选择“Remote”;
  • 设置 Host 为远程服务器的域名或IP,保持 Port=5005 无需调整;
  • 复制命令行参数,形如 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

2.2 远程服务中开启 Debug 服务

2.2.1 对于 SpringBoot

命令行添加选项,并重启:

## 注意新参数必须在 -jar 之前
jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test.jar
2.2.2 对于 Tomcat

启动脚本中添加选项,并重启:

## sudo vim $CATALINA_HOME/bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

2.3 远程服务器防火墙端口放行

### sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5005 -j ACCEPT
### 重启生效: sudo systemctl restart iptables

3 开始调试

  • 要求:双方代码一致,否则远程调试无法启动;
  • 本地启动刚刚配置的 Remote Server,正常时会看到日志: Connected to the target VM, address: 'xxx:5005', transport: 'socket'
  • 本地 IDEA 代码中设置断点
  • 浏览器或手机 HTTP 访问服务器
  • IDEA 即可在断点暂停并跟踪

4 关闭调试

服务器上多开放个端口是不安全的,调试完毕后可恢复防火墙设置。
而 Java 服务器开启 Debug 服务器的功能可以保留,以便之后再次调试。

  • 31
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在使用IDEA进行远程调试时,如果遇到连接失败的问题,这可能有多种原因。其中一个可能是由于Tomcat服务没有开启所致。请确保Tomcat服务已经成功启动。 另外,报错信息"Unable to open debugger port : java.net.ConnectException "Connection refused: connect""也可能是由于端口被其他进程占用所导致的。你可以尝试检查端口是否被其他应用程序占用,或者尝试更改IDEA中设置的调试端口。可以通过在IDEA中打开“Run/Debug Configurations”窗口,然后在相应的配置中找到“Debug”选项来更改调试端口。 此外,还有一些其他常见的问题可能导致远程调试连接失败,比如防火墙或网络配置问题。你可以确保防火墙允许IDEA与Tomcat之间的通信,并检查网络配置以确保连接正常。 综上所述,当遇到IDEA远程调试连接失败的问题时,你可以先确保Tomcat服务已经启动,检查端口是否被占用,并排除防火墙或网络配置问题。希望这些信息对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [IntelliJ IDEA服务器远程调试报Connection refused](https://blog.csdn.net/maomi00/article/details/80815173)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值