Java项目通过IDEA远程debug调试

前言

在我们真实项目开发过程中,又是经常会发现一种问题,就是我们在开发环境功能是正常的,在测试环境可能也不太容易发现问题。

结果到了生产环境,由于数据量大,且数据类型变多后,就产生了一些比较难复现的问题。

当这类问题产生的时候,我们通常排查的思路是首先检查一下代码,看是否代码确认存在明显的问题。

如果通过查看代码看不出什么问题,我们可能会通过增加日志,在每一句代码的结果输出执行结果,或者打上标识日志。然后把增加了日志的代码再打包然后上传的生产环境去运行,然后等程序再次发生错误时,根据日志定位产生问题的代码。

通过打日志操作起来比较麻烦,通常等排查完问题后,还需要将日志删掉,然后再去将修改后的代码打包上传到生产环境。

所以除了这些方式去排查问题,还有什么其他的方式可以排查问题吗?

正文

我们今天给大家介绍一种问题排查方式:IDEA远程debug调试。

首先我们先在idea中创建一个远程debug服务的配置

然后将Command line arguments for remote JVM:区域生成带jvm参数复制一下,其中端口port可以自己定义。

然后将这段jvm参数添加到项目服务启动的参数中。

我们的项目通常有两种部署方式:

一种是springboot项目直接打成jar包去部署启动

一种是将项目打成war包然后部署到web服务器上,如tomcat。

这两种方式我们都演示一下。

1、打成jar包直接部署启动

我们在启动参数中添加上面复制的内容,如下:

java 复制代码
java -jar transfer-web-1.0-SNAPSHOT.jar   -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

然后等待服务启动成功后,我们再启动idea中的监听服务

然后此时我们就可以去对应的代码打断点,然后去操作项目环境对应的功能,等功能走到断点处,就会被拦截到。

2、war包部署到tomcat

我们需要在tomcat服务器的启动参数中添加上面复制的监听的参数。

对于linux环境下的tomcat,我们先找到bin目录下的catalina.sh,然后修改文件中的这行配置

CATALINA_OPTS="$CATALINA_OPTS"

将上面复制的监听的参数,添加到这个配置中,添加完后如下:

java 复制代码
CATALINA_OPTS="$CATALINA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

然后就可以重启tomcat了,然后我们再启动idea中的监听服务。

然后此时我们就可以去对应的代码打断点,然后去操作项目环境对应的功能,等功能走到断点处,就会被拦截到。

们再启动idea中的监听服务。

然后此时我们就可以去对应的代码打断点,然后去操作项目环境对应的功能,等功能走到断点处,就会被拦截到。

相关推荐
2401_857439692 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
SoraLuna2 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
xlsw_2 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹3 小时前
基于java的改良版超级玛丽小游戏
java
Dream_Snowar3 小时前
速通Python 第三节
开发语言·python
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭3 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫4 小时前
泛型(2)
java
超爱吃士力架4 小时前
邀请逻辑
java·linux·后端
南宫生4 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石4 小时前
12/21java基础
java