一、前提

1.debug的远程服务器和你的IDEA所在的机器网络需要联通

2.本地的项目代码和远程服务器上的代码要一致,如果保证不了一致,至少debug经过的类和方法要一样

3.生产环境原则禁止debug,不用的话及时关闭,可能发生代码注入,风险性非常大。

二、配置

1.编辑文件tomcat/bin/catalina.sh

在该文件靠上的位置新增一行:

CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"(8000代表的远程端口号)

2.重启服务器的服务。

3.进入到IDEA并打开web项目,找到配置服务器的地方,如下图红框所示,点击Edit Configuration

请添加图片描述

4.新增Remote JVM Debug类型的服务器,并填写服务器的ip地址和端口(第1步设置的端口)

请添加图片描述

5.启动起来

三、其他方式

在IntelliJ IDEA中进行远程调试是一种强大的功能,它允许你在本地开发环境中调试部署在远程服务器上的应用程序。这对于调试生产环境中的问题尤其有用。以下是设置IntelliJ IDEA进行远程调试的基本步骤:

1.确保服务器端配置:

在远程服务器上,你需要配置你的应用程序服务器(如Tomcat、Jetty、WildFly等)以监听调试连接。这通常涉及到在启动应用程序服务器时加入特定的JVM参数。

2.JVM参数配置示例:

对于Java应用程序,可以在启动脚本中加入类似下面的参数:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

其中:

  • transport=dt_socket 表示使用套接字传输。
  • server=y 表示这是一个服务器端。
  • suspend=n 表示不要暂停JVM直到客户端连接;如果是suspend=y,则JVM将在启动时暂停等待客户端连接。
  • address=*:5005 指定监听所有接口上的5005端口。
  • 设置IntelliJ IDEA进行远程调试

3.创建远程调试配置:

  • 打开IntelliJ IDEA并转到 Run > Edit Configurations…。
  • 点击左上角的 + 按钮,选择 Remote 来创建一个新的远程调试配置。
  • 填写配置名称,例如 Remote Debugging。
  • 在 Port 字段中输入远程服务器上监听的端口号,例如 5005。

4.配置断点:

在你的代码中设置断点,这样当调试会话开始时,IDEA就会在那里停下来。
连接到远程调试会话:

  • 在IntelliJ IDEA中,选择你刚刚创建的远程调试配置。
  • 点击 Run 菜单中的 Debug 或使用快捷键 Shift+F9 开始调试会话。
  • 如果一切正常,IDEA将尝试连接到远程服务器上的指定端口。

5.注意事项

  • 防火墙和安全组:
    确保远程服务器上的防火墙规则允许来自你的开发机器的入站连接。
    如果是在云环境中,确保安全组规则允许访问相应的端口。
  • 网络连接:
    确保你的开发机器和远程服务器之间的网络连接稳定。
  • 调试器兼容性:
    确认你的IDEA版本和远程服务器上的JVM版本之间没有兼容性问题。
  • 调试信息:
    确保编译时包含了调试信息(例如,使用 -g 标志编译)。

通过以上步骤,你应该能够成功地设置并使用IntelliJ IDEA进行远程调试。如果有任何问题,请检查服务器端的日志,看看是否有任何关于调试代理的消息,同时也要检查IDEA的调试控制台是否有任何错误信息。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐