使用 IntelliJ IDEA 进行远程程序调试

13 篇文章 0 订阅
订阅专栏

C: 今天在测试环境出现了一个 “匪夷所思” 的问题,追踪日志、排查 Feign 日志,修改配置,尝试了很多种办法,均未解决。最终决定对测试环境进行远程程序调试来看看。

在开发时用 IDE 的断点调试倒是相对便捷,但到了部署好的环境,再使用 IDE 来调试,就要麻烦一些了。下面就跟着笔者来看看使用 IntelliJ IDEA 实现远程 Debug 的步骤吧。

笔者说
由于笔者安装了 [Chinese(Simplified)Language Pack / 中文语言包] 插件,所以下方步骤的 IntelliJ IDEA 界面都是中文的,各位同学如果用的是默认语言包,那就参照着看吧。

新增远程调试配置

点开运行程序下拉菜单,点击 [编辑配置…]。

在这里插入图片描述

在打开的 [运行/调试配置] 窗口,点击左上角 [+] 号,随后在弹出的 [添加新配置] 下拉菜单中,下拉找到 [远程 JVM 调试],点击即可添加远程调试配置。

在这里插入图片描述

按照下图序号顺序,依次设置好 [名称]、[主机]、[端口]、[JDK 版本],然后先复制一下下图红框中的 [远程 JVM 的命令行实参],点击 [确定] 完成远程调试配置添加。

笔者说
这里主要就注意一下主机和端口两个配置、主机是你要远程调试的程序所在服务器的 IP/域名,但端口可不是你要远程调试的程序所占用的端口。这个端口是远程调试端口,也不能和程序端口相同。

在这里插入图片描述

修改启动命令

添加完配置之后,就立刻能开始调试吗?当然不是了,很简单的问题,如果我们只需要在 IntelliJ IDEA 中配置两下就能直接连接程序调试,那 Java 程序的安全性也太低了吧。

刚才笔者让你复制的 [远程 JVM 的命令行实参],是 IntelliJ IDEA 基于我们刚才的配置帮我们生成的,我们需要将这个 JVM 命令行参数加到你要远程调试的程序启动命令中。

例如:

# -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 你的程序名.jar --spring.profiles.active=test

好了,还差最后一步,把你配置的远程调试端口放开。

启动远程调试

回到 IDE 中,点击 [Debug 运行] 按钮,如果控制台窗口出现下方提示,那么接下来该怎么加断点,该怎么触发断点,该怎么进行调试就不用笔者过多介绍了吧?

# Connected to the target VM, address: ''xxx:5005', transport: 'socket''
已连接到目标 VM,地址:''xxx:5005', 传输: '套接字''

在这里插入图片描述

远程调试完后别忘了把远程调试端口关闭,该删除安全组规则就删除。

哦对了,笔者这 “匪夷所思” 的问题到底解决了没有呢?当然解决了,而且这个问题不是代码的问题,而是一位远程办公的同事在他本地连接了测试环境数据库(这在笔者项目开发时强调过不允许连接),他的程序一直运行着把测试环境的一些任务数据处理了。

具体的不多说,因为当你调试时程序运行正常,断开调试再试就出错,而且在你没调试前添加的部分日志埋点也没输出时,其实就应该摒弃所谓的 “不可能”,即:程序没有在你预想的机器上运行。毕竟福尔摩斯有句话:“排除一切不可能的,剩下的即使再不可能,那也是真相”。

IDEA 远程调试 Remote JVM Debug
@chen
06-29 2243
IDEA 远程调试 Remote JVM Debug
使用idea进行远程调试
weixin_45189615的博客
04-06 1822
工作中经常会遇到,代码在本地执行没有问题,部署到开发、测试环境后,却遇到各种各样的问题。在这个时候,远程调试就有了极大的优势。 首先,在jar包的启动命令中加上如下代码 //${debug_port}为socket监听端口,写为127.0.0.1:12567时,只能本地监听12567端口;写为12567时,允许远程监听12567端口 -Xdebug -Xrunjdwp:transport=dt_socket,address=${debug_port},suspend=n,server=y 在idea.
使用IDEA远程debug调试
刘皇叔说Java的博客
06-11 1506
开发过程中,我们经常会遇到部署的代码运行出问题、看日志由不是很直观、我们希望可以像调试本地代码一样去调试远程代码;IDEA提供了Remote工具,基于JVM的跨平台能力,我们可以远程调试部署的代码。
IDEA远程调试Java程序
最新发布
xiaovie的博客
07-24 900
远程debug的意思是启动一个Java进程,启动一个debugger进程,将两者连接起来,利用debugger来debug Java进程。事实上目前所有的IDE的debug功能都是通过远程debug方式来实现的,它们都利用了一个叫做JDPA(Java Platform Debugger Architecture)的技术。利用JDPA我们除了能够在IDE开发的时候debug,也能够将IDE attach到一个生产环境上正在运行的Java进程做debug(事实上这两个场景在本质上是一样的)。
使用IDEA进行远程调试
weixin_42537532的博客
07-21 6349
步骤5:本地IDEA启动debug模式,控制台显示Connected to the target VM, address: '10.144.1.191:5000', transport: 'socket' 即连接成功。的代码必须与远程部署的代码完全一致,不能发生任何的修改,否则打上的断点将无法命中,切记切记。区别:方法一是永久有效的,只需要配置一次,之后每次启动都是。建议调试时尽快走过断点方法,以免阻塞生产环境的使用。返回的信息之后可以通过不同的方式展示给客户。方法二:进入服务器端的。
Intellij IDEA基于Springboot的远程调试(图文)
08-25
下面将详细介绍Intellij IDEA基于Springboot的远程调试的配置和使用方法。 一、远程调试的定义和作用 远程调试是指在远程服务器上运行服务端程序,而在本地设置断点,以便在远程服务器收到请求时能知道远程服务端...
Intellij idea远程debug连接tomcat实现单步调试
08-27
使用 IntelliJ IDEA 远程 debug 连接 Tomcat 实现单步调试可以带来许多优点,例如可以远程 debug 连接 Tomcat 服务器,实时地检查变量的值和状态,快速地找到程序的错误,也可以对程序进行逐步调试,检查每一行代码...
idea远程调试代码(图文详细)
08-06
这几天,我做的项目中需要使用第三方的 API,在第三方的 API 回调时,出现各种错误,需要远程调试。之前做远程调试的时候,我只会在代码中输出日志,记录下来做分析处理,但这样做既麻烦又费时,往往还不能准确定位问题,恶心至极。之前做 .NET 开发时用过 Remote Debug 这个功能,想想 Idea 这么牛逼,是不是也有这个功能,上网一查,还真有,共享出来,与诸君共勉。
IntelliJ IDEA远程Debug Linux的Java程序,找问题不要只会看日志了
南瓜慢说
09-05 309
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 我们习惯于在本地开发的时候debug,能快速定位与解决问题,那部署在服务器上是不是就没有办法了呢?只能通过查看日志来定位? 不是的,在远端的服务器上,我们一样可以debug。 2 IDEA的debug 我们先来看一下在IntelliJ IDEA直接debug是怎样的。 先准备一个简单的Java程序: package com.pkslow.basic; import java.util.Map; public class Rem
IDEA远程调试
Z645817的博客
04-10 998
问题:         通常在java打成可运行的Jar项目时,运行jar时调试很不方便,特别是要在linux上面执行jar包的情况。此时需要将这个项目打成Jar包(如果是maven项目,直接使用package或者install命令),然后再使用IDEA调试Jar包。 步骤: 1.通过命令启动调试jar文件:(端口5005可以修改)     运行命令:java -jar -Xdebug -...
idea远程调试
热门推荐
aiwokache的博客
07-26 1万+
idea远程调试
IDEA远程DeBug调试
白豆五的博客
06-28 1万+
当我们在开发过程中遇到一些复杂的问题或需要对代码进行调试时,远程调试是一种非常有用的工具。使用 IntelliJ IDEA 进行远程调试可以让你在远程服务器上的应用程序中设置断点、查看变量和执行调试操作。提供更方便的调试环境:通过远程调试,你可以在自己熟悉的 IntelliJ IDEA 开发环境中进行调试,而不需要在远程服务器上进行调试。快速定位问题:远程调试允许你逐行调试代码,一步一步地了解代码的执行过程。这有助于快速定位和解决问题,尤其是在复杂的代码逻辑或边界情况下。
IDEA 远程调试记录
C#专栏
12-31 213
1、选attach 2、选socket(因为是linux) 3、远程IP 4、端口号(据说不能跟tomcat端口号重复,否则不进断点) 5、这个行自动生成的,复制到tomcat\bin\catalina.sh 首行即可,下格式为: CATALINA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,addre...
IDEA远程调试以及原理
HaSaKing的博客
03-18 1515
远程调试的原理基于Java调试体系结构(Java Debug Architecture)中的一个关键组成部分:Java Debug Wire Protocol(JDWP)。使用这个协议,调试器可以查询被调试JVM的状态,设置断点,控制程序执行流程等。首先,需要在远程服务器上运行的Java应用程序中启用远程调试。: 一个高级Java编程接口,提供了在Java代码中编写调试器的能力。通过JDWP,远程调试为开发者提供了一个强大的工具,可以在不同的开发和生产环境中诊断和解决问题。
IDEA中Remote JVM Debug太爽了,远程调试连接
热爱Java的小老弟
06-17 534
idea使用Remote JVM Debug远程连接到线上的服务,调试代码
使用IDEA进行远程开发
Judy的博客
10-21 6063
之前写项目进行调试测试。因为里面使用了websocket协议,而内网穿透又不支持websocket协议,所以需要将项目部署到云服务器中,供小伙伴进行调试测试,测试出了问题又要下线改代码,重复很多次。
如何在IntelliJ IDEA进行远程调试
12-14
以下是一个示例 Java 程序,用于演示如何在 IntelliJ IDEA进行远程调试: ```java public class RemoteDebugDemo { public static void main(String[] args) { int sum = 0; for (int i = 1; i ; i++) { sum ...
写文章

热门文章

  • F:\ 上的回收站已损坏。是否清空该驱动器上的“回收站“? 35185
  • 执行Shell脚本,报java: command not found 8871
  • 解决Windows桌面部分快捷方式图标变为空白的问题 8539
  • SpringBoot项目引入OpenFeign后无法启动 3893
  • Nginx转发请求,报13:Permission denied错误 3873

分类专栏

  • 杂碎逆袭史 13篇
  • 我的小册 3篇
  • BUG万象集 13篇
  • 方案春秋志 3篇

最新评论

  • F:\ 上的回收站已损坏。是否清空该驱动器上的“回收站“?

    qq_41508765: 让我输入YN这块,我输入完Y就提示拒绝访问是咋回事呢?

  • SpringBoot项目引入OpenFeign后无法启动

    baidu_26272315: 我的是Spring Boot 2.4.5 的版本,引用报错。

  • SpringBoot项目引入OpenFeign后无法启动

    baidu_26272315: <!-- 全局版本锁定 --> <dependencyManagement> <!-- Spring Cloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencyManagement> 引入这段到springboot报错,咱回事!

  • F:\ 上的回收站已损坏。是否清空该驱动器上的“回收站“?

    simplerxing: 我也是显示这,不知道怎么处理

  • 创建一个自身类的静态对象变量,究竟会如何执行?

    随风_2016: 只能说是垃圾java,初始化对象时,成员变量就应该先初始化。变量时类的一部分,哪有类都生成对象了,它的一部分还没生成的道理?

最新文章

  • 一个界面现代美观,色彩年轻化的Vue3+SpringBoot3前后端分离中后台管理脚手架
  • 简单聊聊如何让网站开启灰色显示
  • Docker 安装 MinIO 详细步骤
2023年1篇
2022年33篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

查尔斯-BUG万象集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

天下网标王罗平县网站seo优化排名什么行业的网站需要被优化文登网站优化企业网站单词优化溧阳网站优化推广免费网站优化排名系统江苏网站搜索优化廊坊网站快照优化电话荆州本地网站优化公司网站怎么优化了火16星张掖网站优化排名推广网站性能优化实施方案网站网络推广优化深圳哪个网站可以优化环保设备网站seo优化团队鹤壁网站优化哪里好镇宁县分类网站优化衡水安平网站seo优化望江网站优化怎么样长沙ai网站推广优化企业网站优化推广意味着什么青岛整站优化网站淄博网站制作备案优化优化公司网站蛋竞云速捷出众东营网站优化需要多久梅州公司网站关键词优化多少钱网站做优化享誉火17星天使新乡靠谱网站优化首选做seo网站优化如何查看网站优化效果香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化