当前位置: 首页 > news >正文

Java项目通过IDEA远程debug调试

前言

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

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

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

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

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

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

正文

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

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

在这里插入图片描述

在这里插入图片描述

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

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

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

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

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

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

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

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

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"

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

CATALINA_OPTS="$CATALINA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

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

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

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

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

相关文章:

Java项目通过IDEA远程debug调试

前言 在我们真实项目开发过程中,又是经常会发现一种问题,就是我们在开发环境功能是正常的,在测试环境可能也不太容易发现问题。 结果到了生产环境,由于数据量大,且数据类型变多后,就产生了一些比较难复现…...

Python 绘图入门

数据可视化的概念及意义 数据可视化有着久远的历史,最早可以追溯至10世纪,至今已经应用和发展了数百年。不知名的天文学家是已知的最早尝试以图形方式显示全年当中太阳,月亮和行星的位置变化的图。 图1 数据可视化的发展历程 什么是数据可视…...

RK3568平台(背光篇)背光驱动代码分析

一.背光驱动设备树DTS backlight: backlight {compatible "pwm-backlight";pwms <&pwm1 0 5555555 1>;brightness-levels <77 77 78 78 79 79 80 8182 83 84 85 86 87 87 8888 89 90 90 91 91 92 9394 94 95 95 96 96 9…...

华为od统一考试B卷【比赛】python实现

def split_params(param_str): return list(map(int, param_str.split(,))) def main(): # 获取输入 target_str input().strip() # 输入验证&#xff0c;拆分并转换为整数 try: m, n split_params(target_str) except ValueError: print(-1) return # 检查 M 和 …...

Prometheus 监控接入规范

目录 一、目的 二、自定义监控指标定义规范 2.1 基本命名规范 2.1.1 指标命名规范 2.1.2 标签名称 2.2 控制基数 2.2.1 避免高基数标签 2.2.2 预定义标签集 2.2.3 动态数据的处理 2.2.4 评估与监控基数 2.2.5 降低历史数据的保留 2.2.6 适当使用 Histogram 和 Summa…...

优化 SQL 查询性能:深入理解 EXPLAIN 命令

优化 SQL 查询性能:深入理解 EXPLAIN 命令 在 MySQL 数据库管理中,优化 SQL 查询性能是确保高效数据处理的关键。EXPLAIN 命令是分析和优化 SQL 查询的强大工具,它帮助我们理解查询执行计划,从而找到性能瓶颈并进行优化。本文将详细解释 EXPLAIN 命令返回的各个列的含义,…...

@Mapper报红

检查pom.xml&#xff0c;导入 org.mybatis.spring.boot 依赖&#xff1a; <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency…...

shell综合小实验1-----查看系统硬件信息

echo命令的使用 1&#xff1a;echo -n 不换行 echo -n “我是个大聪明” #不换行输入我是大聪明 2&#xff1a;echo -e 开启颜色 echo -e "\03335m我是大聪明\033[0m" #用35m这种颜色输出我是大聪明然后关闭颜色显示&#xff0c; 30多是字体颜色&#xff0c;40多是…...

【过程管理】项目需求管理规程(Word原件)

在软件开发的过程中&#xff0c;开发人员与用户之间往往忽视有效的信息沟通&#xff0c;这常常导致开发出的软件无法满足用户的实际需求&#xff0c;进而引发不必要的返工。返工不仅为开发人员带来技术上的困扰&#xff0c;增加了人力和物力的消耗&#xff0c;还会对软件的整体…...

C# 不使用 `async` 和 `await` 的常见场景

虽然 async 和 await 是强大的异步编程工具&#xff0c;但在某些情况下&#xff0c;不使用它们可能更合适。以下是一些不使用 async 和 await 的常见场景&#xff1a; 方法是完全同步的&#xff1a; 如果方法中的所有操作都是同步的&#xff0c;并且没有异步调用&#xff0c;则…...

adb目录笔记《adb更新、进入开发者模式,adb查询packages、adb开启应用,查询进程、强制删除进程》

1.sideload模式 在需要安卓没有root权限的时候&#xff0c;可以使用adb reboot sideload命令进入sideload模式&#xff0c;之后运行对应文件 adb reboot sideload adb sideload <root.zip> 2.packages包查询、运行、删除 在需要查看安卓中packages包的名称时&#xf…...

VS2022 C++ EasyX EGE 吃豆人升级版

我是可爱的C小盆友&#xff08;不要脸了&#xff09;&#xff0c;嘻嘻&#xff0c;等了这么久&#xff0c;吃豆人终于升级啦&#xff01; 更新日志&#xff1a; 1.修复奇奇怪怪的bug 2.把敌人AI增强了一&#xff08;hen&#xff09;点&#xff08;duo&#xff09; 3.加入了…...

计算机图形学 | 动画模拟

动画模拟 布料模拟 质点弹簧系统&#xff1a; 红色部分很弱地阻挡对折 Steep connection FEM:有限元方法 粒子系统 粒子系统本质上就是在定义个体和群体的关系。 动画帧率 VR游戏要不晕需要达到90fps Forward Kinematics Inverse Kinematics 只告诉末端p点&#xff0c;中间…...

B2.3 Arm 内存模型定义

B2.3 Arm 内存模型定义 Arm 内存模型引入了以下几种关系: 内在关系 :例如,内在数据/控制/顺序依赖关系和内在翻译之前的关系,这些是源自指令语义的硬件要求。 之后关系 :例如,之后的连贯性和 TLB 之后的关系,这些关系在特定执行中发生这种方式,但在不同的执行中可以以…...

(javaweb)SpringBootWeb案例(毕业设计)案例--部门管理

目录 1.准备工作 2.部门管理--查询功能 3.前后端联调 3.部门管理--新增功能 1.准备工作 mapper数据访问层相当于dao层 根据页面原型和需求分析出接口文档--前后端必须遵循这种规范 大部分情况下 接口文档由后端人员来编写 前后端进行交互基于restful风格接口 http的请求方式…...

PCL 采样一致性模型介绍

采样一致性可以简单高效的检测出一些具有数学表达式的目标模型。PCL中的sample consensus模块中不仅包含各种的采样一致性估计方法,也包含一些已经编写好的数学模型,下面主要介绍一下PCL中的采样一致性模型。 1. 二维圆模型 pcl::SampleConsensusModelCircle2D< PointT …...

Unity手游开放大世界解决方案

开个新坑了&#xff0c;分享一个手游开放大世界的解决方案&#xff0c;也算是我开发研究了一年多的结果吧。之前项目需要&#xff0c;做了一整套的手游开放大世界解决方案&#xff0c;这里做一个总结归纳&#xff0c;将所需要的技术栈和解决方案等汇总。 这篇文章只是起头一个目…...

mysql B+ 树

问题&#xff1a; mysql innodb引擎 B树主键自增&#xff0c;插入数据时是从中间分裂&#xff0c;还是使用页尾部元素作为父节点的值然后添加一个新页&#xff0c;或者说主键连续自增&#xff0c;mysql有没有做这样的优化&#xff1f; 以下是Chat GPT给出的回答&#xff1a;...

Sublime Text常用快捷键大全

Sublime Text 是一款功能强大且广受欢迎的文本编辑器&#xff0c;其丰富的快捷键支持使得开发者能够更高效地编写和编辑代码。以下是 Sublime Text 中一些常用的快捷键&#xff0c;帮助你更加高效地使用这款工具&#xff1a; 功能分类快捷键 (Windows)快捷键 (Mac)新建文件Ctr…...

中成科信票务管理系统 TicketManager.ashx接口SQL注入漏洞复现 [附POC]

文章目录 中成科信票务管理系统 TicketManager.ashx接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现0x06 修复建议中成科信票务管理系统 TicketManager.ashx接口SQL注入漏洞复现 [附POC] 0x01 前言 …...

ER-Save-Editor技术解析与实战指南:从原理到创新应用

ER-Save-Editor技术解析与实战指南&#xff1a;从原理到创新应用 【免费下载链接】ER-Save-Editor Elden Ring Save Editor. Compatible with PC and Playstation saves. 项目地址: https://gitcode.com/GitHub_Trending/er/ER-Save-Editor 技术原理篇&#xff1a;开源存…...

广州SEO优化对网站转化有什么帮助_广州SEO优化应该注意哪些问题

<h2>广州SEO优化对网站转化有什么帮助</h2> <p>在当今数字化时代&#xff0c;广州SEO优化成为了企业提升在线业务的关键策略。广州作为中国南方的重要城市&#xff0c;其互联网市场竞争激烈&#xff0c;掌握有效的SEO优化手段对于提升网站转化率至关重要。广…...

StructBERT情感分类模型部署架构设计

StructBERT情感分类模型部署架构设计 1. 引言 情感分类是自然语言处理中的核心任务之一&#xff0c;能够自动分析文本中的情感倾向&#xff0c;在用户评价分析、舆情监控、智能客服等场景中发挥着重要作用。StructBERT作为基于Transformer架构的预训练模型&#xff0c;在中文…...

字节跳动的Trae的使用感受,及对比腾讯小龙虾使用场景

一、Trae的使用 Trae支持多种模型&#xff0c;官网下载安装后&#xff0c;直接在对话框描述你的需求&#xff0c; 比如&#xff0c;我这里需求是帮我按照ui设计图&#xff0c;帮我生成小程序页面&#xff1a; A. 上传磨刀或蓝狐页面设计图&#xff0c;例如&#xff1a;蓝湖选中…...

【系统分析师_知识点整理】 8.项目管理

核心考向&#xff1a;进度管理&#xff08;计算 选择最高频&#xff09;&#xff1a;关键路径、ES/EF/LS/LF、总浮动时间、自由浮动时间、PDM 四种依赖、进度偏差分析&#xff1b;范围管理&#xff1a;WBS、范围确认、范围控制、范围边界定义&#xff1b;成本管理&#xff1a;…...

Apache Doris 4.0.4:解锁数据管理新境界

Apache Doris 4.0 作为重要里程碑发布后&#xff0c;社区通过 4.0.1 至 4.0.4 版本快速演进。如今 4.0.4 正式登场&#xff0c;功能更稳定可靠&#xff0c;引领其从实时分析迈向数据管理领域。面向 AI 工作负载的混合搜索能力检索成现代数据平台核心负载&#xff0c;Apache Dor…...

Comsol 多裂纹水力压裂扩展:拉伸与压缩下的破坏探索

comsol多裂纹水力压裂扩展&#xff0c;可以实现拉伸和压缩下的破坏。在工程领域&#xff0c;水力压裂是一项至关重要的技术&#xff0c;尤其在石油和天然气开采等方面应用广泛。而 Comsol 作为强大的多物理场仿真软件&#xff0c;为我们研究多裂纹水力压裂扩展提供了有力工具&a…...

RTX 3060用户必看:解决nvcc报错‘Unsupported gpu architecture‘的完整指南

RTX 3060显卡CUDA开发实战&#xff1a;彻底解决Unsupported gpu architecture编译错误 当你兴奋地拆开新入手的RTX 3060显卡准备大展拳脚时&#xff0c;却在编译CUDA项目时遭遇了令人沮丧的Unsupported gpu architecture错误。这个看似简单的报错背后&#xff0c;隐藏着CUDA开…...

SDMatte与LSTM时序模型结合:处理视频连续帧的稳定抠图

SDMatte与LSTM时序模型结合&#xff1a;处理视频连续帧的稳定抠图 1. 引言&#xff1a;视频抠图的挑战与机遇 视频抠图技术一直是影视后期和直播领域的核心需求。传统方法在处理动态场景时常常面临边缘闪烁、细节丢失和时间不一致等问题。想象一下&#xff0c;当你在视频会议…...

Reset Windows Update Tool:开源工具解决Windows更新问题的3个高效方案

Reset Windows Update Tool&#xff1a;开源工具解决Windows更新问题的3个高效方案 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool …...