IDEA远程调试(Remote Debug)Java代码指南

前言

当我们的代码在线上/测试环境运行出现异常需要进行问题定位时,之前的传统做法是:查看异常日志,根据日志定位到出错代码,然后再根据相关参数及异常信息进行推断。但是很多异常问题需要更细致的进行debug才能够更精准的去定位和解决,这种情况下,我们希望能够像在本地调试一样去debug线上/测试环境的代码,这样可以大大提升bug修复的效率,IDEA非常贴心的为我们提供了这一功能,具体用法如下:

配置步骤

远程服务启动参数

使用如下命令启动服务端程序;

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005 -jar 待发布的程序jar包名称.jar

image.png

本地IDEA配置

1.菜单栏选择 Run | Edit Configurations 或按快捷键 Alt+Shift+F10 然后选择 “0.”;
2.在 Run/Debug Configurations面板,点击左上角“+”号,然后选择“Remote”;
3.配置“Remote” 属性:

  • Name:配置Remote Debug的名称,可以是任意名称;
  • Host:配置服务器的域名或ip地址,Port 使用默认值5005,也可以是其他端口;
  • Command line arguments for remote JVM:配置Debug远程服务的命令行启动参数,本地在Debug时会监听远程服务的对应端口并运行调试环境,具体的参数说明如下:

    • -Xdebug:JVM在DEBUG模式下工作;
    • -Xrunjdwp:JVM使用(java debug wire protocol)来运行调试环境;
    • transport:监听Socket端口连接方式,常用的dt_socket表示使用socket连接;
    • server:=y表示当前是调试服务端,=n表示当前是调试客户端;
    • suspend:=n表示启动时不中断;
    • address:表示本地监听的地址和端口。

image.png

image.png

然后在本地程序中在需要调试的代码处设置断点,最后再按 Alt+Shift+F9 选择之前配置的remote debug并点击“Debug”运行;

image.png


请求&调试

向服务器的接口发起请求, 可以观察到请求会进入本地程序设置断点处,至此实现IDEA进行Remote Debug;


image.png

image.png


coding不断,快乐不止!...

10 声望
3 粉丝
0 条评论
推荐阅读
刨根问底 Redis, 面试过程真好使
充满寒气的互联网如何在面试中脱颖而出,平时积累很重要,八股文更不能少!下面带来的这篇 Redis 问答希望能够在你的 offer 上增添一把🔥。

菜农曰15阅读 833

封面图
Java 编译器 javac 及 Lombok 实现原理解析
javac 是 Java 代码的编译器12,初学 Java 的时候就应该接触过。本文整理一些 javac 相关的高级用法。Lombok 库,大家平常一直在使用,但可能并不知道实现原理解析,其实 Lombok 实现上依赖的是 Java 编译器的注...

nullwy10阅读 5.9k

与RabbitMQ有关的一些知识
工作中用过一段时间的Kafka,不过主要还是RabbitMQ用的多一些。今天主要来讲讲与RabbitMQ相关的一些知识。一些基本概念,以及实际使用场景及一些注意事项。

lpe2348阅读 1.8k

封面图
Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...

王中阳Go5阅读 1.8k评论 2

封面图
Redis 发布订阅模式:原理拆解并实现一个消息队列
“65 哥,如果你交了个漂亮小姐姐做女朋友,你会通过什么方式将这个消息广而告之给你的微信好友?““那不得拍点女朋友的美照 + 亲密照弄一个九宫格图文消息在朋友圈发布大肆宣传,暴击单身狗。”像这种 65 哥通过朋...

码哥字节5阅读 1.1k

封面图
NB的Github项目,看到最后一个我惊呆了!
最近看到不少好玩的、实用的 Github 项目,就来给大家推荐一把。中国制霸生成器最近在朋友圈非常火的一个小网站,可以在线标记 居住、短居、游玩、出差、路过 标记后可生成图片进行社区分享,标记过的信息会记录...

艾小仙5阅读 1.5k评论 1

好好的系统,为什么要分库分表?
今天是《分库分表 ShardingSphere 原理与实战》系列的开篇文章,之前写过几篇关于分库分表的文章反响都还不错,到现在公众号:程序员小富后台不断的有人留言、咨询分库分表的问题,我也没想到大家对于分库分表的话...

程序员小富3阅读 1.5k

coding不断,快乐不止!...

10 声望
3 粉丝
宣传栏