IDEA 开启远程调试
idea 远程调试
背景
在编写代码时, 总会遇到这样或者那样的bug. 这有些bug 特别是业务逻辑的bug .
在生产或测试环境好复现而在开发环境不好复现. 现在提供的一种思路, 就是远程调试:
我们可以在本地直接调试生产环境或者测试环境的代码. 只需我们本地代码和远程部署的代码一致.
远程主机就会通过socket 将程序执行情况同步到本地
操作
下面以idea 为例
设置远程启动配置
在我们平时启动项目的坐边, 有一个 edit configuration的选项, 然后点击 + , 选择 Remote JVM Debug 选项
Name 为之后启动的名称,
Host 是远程服务器的 ip,
port: 用于远程socket 连接的端口, 注意不要和项目端口一致, 否则可能会导致项目启动失败
然后idea 会为我们自动生成一条命令行参数:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10010
远程项目启动参数
如果是使用的 java -jar xxx.jar 启动, 只需要在原来的启动方式加入第1步生成的参数即可. 例如## 注意socket端口(address) 需要根据第一步自己设置的端口来配置java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10010 -jar xxx.jar
重新启动项目
本地代码要和远程的代码保持一致, 否则有可能会导致调试失败
在远程项目启动成功后, 在本地运行第一步的远程配置
注意事项
- 如果服务器配置了 iptables/防火墙 , 需要放开对应的端口
- 如果使用的是云服务器, 则也需要放开对应socket端口的安全组
- 如果使用开发工具的是eclipse , 远程调试见这位大佬的博客 传送门
- 如果使用docker 部署的jar, 则需要进行如下配置
docker 项目进行远程调试
本质和上面步骤差不多, 但是需要在docker 中, 添加一个内部端口和外部端口的映射
以便我们本地能够通过这个映射访问docker 项目部署的容器
步骤:
修改 DockerFile 文件
在DockerFile 中的项目启动参数的位置添加idea 生成的参数
(也可以复制下面参数, 只需修改为自己设置的socket 连接端口)
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10010
部分DockerFile文件展示
FROM java:8COPY xxx.jar xxx.jarEXPOSE 8081ENTRYPOINT ["java","-Duser.timezone=GMT+8","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10010","-jar","/xxx.jar"]
配置Docker 镜像启动参数
利用 -p hostPort:containerPort 参数将 docker 容器内部 10010 端口映射到项目部署服务器的 10010 端口;
xxx 为项目名docker run -d --restart=always --name xxx -p 8081:8081 -p 10010:10010 \ -v /home:/home \ -v /home/szhyyt-logs/xxx/:/logs \ -v /home/xxx/upload:/upload \xxx:0.0.1 --spring.profiles.active=prod
启动docker 镜像, 本地运行 Remote Jvm Debug 配置
关于远程调试原理和配置参数解释. 如果还想了解更多请见 这里
IDEA 开启远程调试相关推荐
- tomcat开启远程调试功能
在日常开发中,有时需要对远程服务器上的应用进行远程调试,对于tomcat,要进行远程调试其实很简单,只需要在启动tomcat时开启jpda服务即可. 什么是JPDA呢? JPDA(Java Platf ...
- idea java 远程调试_使用idea开启远程调试
jar程序运行在远程服务器上出现错误,又没有明确的错误日志能够查看得到,无从下手?这篇文章获取可以帮助一二. 这里我来分享一种通过idea实现远程调试的方法,几个及其简单的操作就可以使我们定位远程服务 ...
- java如何开启远程调试服务端口_Java远程调试
远程项目报错,但是通过日志等手段没法定位问题,只能提供远程调试的方式定位问题. 1. 步骤 1.1 启动调试端口 业务有自己的端口,而为了能够调试业务,需要另外开启一个端口用于调试. 在java虚拟机 ...
- java程序开启远程调试、断点功能
代码就是最好的文档 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 几点说明: -agentlib:jdwp 这个 ...
- idea开启远程调试
一.启动脚本配置 1.启动脚本添加 -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005 例如我在自己项目添加的案 ...
- 天猫魔盒android开发者模式,【当贝市场】天猫魔盒3 PRO开启远程调试模式教程
原文链接>>> 3 PRO,因为使用的是YUNOS系统,比较少,可以通过系统设置打开远程调试模式,在PC端进行远程操作,诸如远程截图,推送安装APK文件,文件推送等.下面就是我使用的 ...
- java 远程调试spark_spark开启远程调试
一.集群环境配置 #调试Master,在master节点的spark-env.sh中添加SPARK_MASTER_OPTS变量 export SPARK_MASTER_OPTS="-Xdeb ...
- linux下tomcat开启远程调试
1.center下,在startup.sh文件首行中添加如下语句 declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.com ...
- Windows/Linux服务器上Tomcat开启远程调试,使用IDEA本地调试
注意:要保证本地的代码与服务器上部署的代码完全一致
- tomcat9开启远程调试功能
1)tomcat启动配置 修改bin/setenv.sh文件导入如下变量 export JPDA_ADDRESS=0.0.0.0:8000 启动tomcat命令,启动完成后可以使用netstat命令查 ...
最新文章
- 第11章 Internet 服务器应用课后习题答案
- 1084. Broken Keyboard (20)
- 属于程序员的黄金五年,把握这 5 年,或将迎来美好的职场生活!
- ETL的增量抽取机制
- 尝试修改smali码破解App
- windows server 2008R2下安装nginx
- SE:14.Annotation
- 使用 openssl 进行 base64 编解码
- 浊音、清音、爆破音音频分析
- C盘里的HTML是什么文件,C盘Windows下的winsxs是什么文件可以删除吗
- android10全面屏手势 操作图,丨系统设计丨ZUI 10加入更多全面屏手势
- react + canvas点线动画背景
- 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)
- java生成二维码扫描跳转到指定的路径URL
- 求首尾相连数组的最大子序列和
- Markdown内嵌图片的解决方法
- AI“文化宴”,易碎的市场寻求新的突破
- 手撸一个在线学习在线教育小程序
- 2022.12.30
- 非常详细的VS2013与PCL1.8.0配置方法