网站首页 > 博客文章 正文
把这些弱点和不成功的地方展示出来
是一种真正的自由
调试也许是程序员工作中最重要的能力,因为程序的逻辑随着时间会越来越复杂,很多时候面对奇奇怪怪的问题我们都会选择调试来深入的看程序的执行流程都是怎样。
在企业开发中,往往都会有开发环境,测试环境,正式环境。有些问题在开发环境都是好好的,一到其他环境就掉链子。
这类情况其实还是挺常见的,特别是经过本地的调试也不能发现问题的所在的时候,就让人很烦躁了。
此时很多同学都会想如果可以调试测试环境的代码就好了,就可以很快发现问题。
那么今天就来介绍 IDEA 强大的远程调试,让你像调试本地代码一样去调试其他服务器上的代码。
首先我们要有一个 Java 的项目来用于调试,比如一个简单的 Spring Boot 项目。
然后把项目打成一个 jar 包,可以通过直接运行 Spring Boot 项目,或者执行 maven 的打包命令
mvn clean package
这个时候你就可以把这个 jar 包上传到你的 linux 服务器上了。
接下来就去到 IDEA 里面,设置远程调试语言的启动项的命令。
首先点击 Run 按钮左边的下拉框,选择Edit Configurations
这里也可以使用快捷键 alt shift f10,然后按 0
接着就回出现如下的对话框
点击左上角的号,选择Remote JVM Debug。
接着就是输入一些配置信息
其中 Name 是给这次远程调试取个名字
Host 是项目所在的远程服务器的 ip
Port 是这次远程调试监听的端口
下面有个以-agentlib 开头的命令行需要复制出来。
接着就去远程服务器上运行项目
命令如下
java-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar demo-0.0.1-SNAPSHOT.jar
这里就是比平时运行 jar 包多带了一个命令行参数而已。
需要注意的是,-agentlib和-jar顺序不要搞反了,否则无法启动监听。
最后就可以在本地的 IDEA 里面打断点,并且点击 Debug 按钮开始调试。
这个时候如果看到终端输出如下信息表示就可以远程调试了。如果连不上,需要看看你的服务器防火墙是不是关闭了。
这个时候可以使用浏览器或者 postman 工具向服务器发起一个请求,看看请求有没有到断点上来。
需要注意的是,远程调试会阻塞其他用户相同的请求,所以一般在测试环境使用远程调试。
如果你现在只有一个 Windows 电脑,没有一个 linux 服务器,能学习远程调试吗?答案是可以的,只需要把 host 改成 localhost,然后根据上述的步骤操作也能享受到远程调试的魅力。
调试好了之后,也要记得及时关闭远程调试,关闭方法如下
选择当前的远程调试会话,点击远程调试名称右边的×
会弹出如下的对话框
点击 Disconnect 断开连接。
最后
远程调试给我们提供了一种新的调试方案,可以帮助我们解决一些本地调试无法发现的问题。
对于个人来说,遇到服务器 bug, 首先会去查看相关的日志,在本地模拟复现服务器上的 bug,如果不行,再使用 arthas 工具,最后才会使用远程调试。
猜你喜欢
- 2025-05-02 spring Boot必用依赖框架(spring boot 依赖)
- 2025-05-02 Navigating global shifts and forging a path for emerging economies
- 2025-05-02 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 2025-05-02 Terminal affliction - China’s vanishing coach stations
- 2025-05-02 连载嵌入式Linux开发教程:初始Ubuntu
- 2025-05-02 Win10预览版9879硬盘丢失的Linux解决方案
- 2025-05-02 idea插件之Grep Console(工欲善其事,必先利其器)
- 2025-05-02 mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查
- 2025-05-02 java日常开发笔记和开发问题记录(java开发问题总结)
- 2025-05-02 IDEA界面太丑??尝试一下这几个插件
你 发表评论:
欢迎- 07-08Google Cloud Platform 加入支持 Docker 的容器引擎
- 07-08日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 07-08美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- 07-08GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 07-08谷歌推出Cloud Dataproc,缩短集群启动时间
- 07-08Infovista与Google Cloud携手推进射频网络规划革新
- 07-08比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- 07-08BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- 最近发表
-
- Google Cloud Platform 加入支持 Docker 的容器引擎
- 日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 谷歌推出Cloud Dataproc,缩短集群启动时间
- Infovista与Google Cloud携手推进射频网络规划革新
- 比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- NCSA和Google Cloud合作开发AI驱动的网络防御系统,加强泰国网络空间的安全性
- SAP将在沙特阿拉伯 Google Cloud 上推出BTP服务
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)