Idea之Java代码Remote JVM Debug

2023-11-03

Idea之Java代码Remote JVM Debug

1、适用场景

​ 在公司中,java代码开发完成之后,一般都会部署到linux服务器上,以供公司客户进行使用。但是作为开发人员,尤其是一名新员工,了解公司产品源代码中的业务逻辑算的上是最重要的,代码量一般都是数万行,此时就需要进行Debug调试。由于公司产品环境搭建相当复杂,并且公司得前端页面直接绑定的也是远程服务器,此时就需要Remote JVM Debug来进行远程调试,来帮助我们理解代码。

2、具体步骤

(1)首先是要在jar启动上加入如下参数。-agentlib:jdwq代表启动了远程调试功能。

  • transport=dt_socket:指定使用套接字传输方式进行调试。
  • server=y:将 JVM 设置为调试服务器模式,等待调试器连接。
  • suspend=n:在启动时不要暂停 JVM,即不等待调试器连接。
  • address=0.0.0.0:40001:指定调试器连接的地址和端口。在这个例子中,JVM 将监听所有网络接口上的 40001 端口。
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:40001

(2)本地操作首先是idea中配置远程debug连接,如下图所示。需要设置你的服务器地址以及端口号即可。

Snipaste_2023-08-12_15-42-15 Snipaste_2023-08-12_15-47-05

(3)本地代码上设置断点。本地调试器设置的断点实际上是对远程 JVM 的断点请求。当远程 JVM 运行到设置的断点位置时,它会通过与远程调试器建立的连接通知远程调试器,并由远程调试器将此消息传递给本地调试器。本地调试器收到断点触发的通知后,就会进入本地调试模式,允许你在本地进行调试操作。在本地代码上设置断点,切记一定要设置上断点的条件,即右击断点进行设置。条件断点,顾名思义就是只有满足此条件的请求,才会被进行拦截,进入debug,断点条件最好设置成唯一ID。如果未设置断点条件,那么就会拦截所有请求,直接影响到服务器为其他客户提供请求服务。

(4)发送请求,然后进入本机开始debug。

兄弟萌,累了休息一下也无妨。人生本来就是走走停停,只要一直在路上就好!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Idea之Java代码Remote JVM Debug 的相关文章

随机推荐

  • 厉害了!知道这样重命名文件都是大佬级别!

    大家好 我是良许 在 Linux 下 重命名一个文件 我们通常是使用 mv 命令 一般是这样操作的 mv file1 txt file2 txt 这样重命令的方式当然是可以 但有个弊端就是你需要输入两次文件名 文件名比较短还好 一旦比较长的
  • zotero 使用方法

    zotero 使用方法总结 前言 zotero 免费开源 功能强大 插件丰富 使用方便 zotero支持多种方式导入文件包括直接拖拽pdf导入文档 DOI arXiv号或从剪切板导入 同时能够使用sci hub 文献下载神器 下载参考文献
  • springboot项目中使用Swagger

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 1 Swagger是啥 Swagger 是一个用于生成 描述和调用 RESTful 接口的 Web 服务 通俗的来讲 Swagger 就是将项目中所有 想要暴露的 接口展现在
  • 【Jmeter】调用java接口进行压测报no cookies问题

    Jmeter 调用java接口进行压测报no cookies问题 问题图片 解决办法 问题图片 解决办法 我的java接口返回参数是json格式 所以要选择如下图所示 最终返回正确的json格式 不在有no cookies问题
  • 线性分类模型(二):logistic回归模型分析

    前言 上一篇文章介绍了线性判别模型 本文介绍线性生成模型 logistic回归模型 本文介绍logstic回归模型相关的知识 为了更好理解模型的决策边界函数 本文同时分析了多元变量的协方差对概率分布的影响 目录 1 logistic回归模型
  • java内存模型

    https www cnblogs com chenpi p 5159558 html
  • 哈希碰撞

    一 什么是哈希碰撞 所谓哈希 hash 就是将不同的输入映射成独一无二的 固定长度的值 又称 哈希值 它是最常见的软件运算之一 如果不同的输入得到了同一个哈希值 就发生了 哈希碰撞 collision 二 哈希碰撞产生原理 举个例子 假设要
  • IDEA更改主题插件——Material Theme UI详解

    原文地址 文章目录 IDEA更改主题插件 Material Theme UI 一 安装 二 设置 1 主设置 1 主题 2 突出颜色 2 高级设置之选项卡 3 高级设置之compact 4 高级设置之图标 icons 关于icons不能使用
  • 导出错误EXP-00091: Exporting questionable statistics

    今天在客户那儿在数据库服务器上导出数据时发生EXP 00091 看看帮助 oracle localhost backup oerr exp 9100091 00000 Exporting questionable statistics Ca
  • Mybatis:了解SqlSessionTemplate

    读完这篇文章 你将会知道 SqlSessionTemplate 和 SqlSessionManager 有什么不同 SqlSessionTemplate 如何实现线程安全 SqlSessionTemplate 怎么和数据库打交道 目录 Sq
  • python 参数**和*用法

    def func 1 kwargs print kwargs def func 2 kwargs print kwargs if name main pilot dqn learn kwargs lr 1e 3 exploration fr
  • Python 反射机制

    对编程语言比较熟悉的朋友 应该知道 反射 这个机制 Python作为一门动态语言 当然不会缺少这一重要功能 然而 在网络上却很少见到有详细或者深刻的剖析论文 下面结合一个web路由的实例来阐述python的反射机制的使用场景和核心本质 一
  • 编码:8421 BCD码(彻底弄懂+6是什么意思,为什么要加6)

    一 解释一下什么是8421 首先要理解的是4bit表示1个十进制位 8421代表的是权值分配 8421码用0000 0001 1001分别表示0 1 2 9的数字 为什么13不是1101 答 不在映射表 8421码的1010 1111没意义
  • 消息中心架构设计

    转载于 https www cnblogs com lilunjia p 8797399 html
  • sql 除以_1.七日留存率-SQL实现

    一 背景 留存率 是用户分析的核心指标之一 它也是经典的AARRR模型 海盗模型 中就有一个重要节点 留存 Acquisition 留存率的计算也是用户分析模型的计算基础 那么如何在数据库中用SQL实现呢 二 什么是留存率 常见的留存率有次
  • GitLab新建删除项目

    新建项目 在主页选择 Create a project 输入Project name 在Project URL选择组或者用户 Visibility Level选择Private 点击 Create project 提示创建成功 点击Clon
  • Vue2项目引入高德地图并展示

    前言 最近项目中需要使用地图来进行展示数据 并且还要进行一些交互的行为 因为之前并没有接触过地图类型的项目 看着原型图感觉还是很不错的 开始开发后也在研究如何在项目中正确引用高德地图 为此也是翻阅了高德官方的文档 发现实现起来还是比较容易的
  • java 蓝桥杯 两道经典国赛 填空题

    目录 求值 题目描述 链接 精选项目课程 IT热门课程 蓝桥云课课程 蓝桥云课 解题思路 源码附上 纯质数 题目描述 解题思路 源码附上 求值 题目描述 链接 精选项目课程 IT热门课程 蓝桥云课课程 蓝桥云课 解题思路 这道题是填空题 所
  • (亲测解决)PyCharm 从目录下导包提示 unresolved reference(完整图解)

    最近在进行一个Flask项目的过程中遇到了unresolved reference 包名 的问题 在网上找了好久解决方案 并没有一个能让我一步到位解决问题的 后来 我对该问题和网上的解决方案进行了分析 发现网上大多数都是针对项目同一目录下的
  • Idea之Java代码Remote JVM Debug

    Idea之Java代码Remote JVM Debug 1 适用场景 在公司中 java代码开发完成之后 一般都会部署到linux服务器上 以供公司客户进行使用 但是作为开发人员 尤其是一名新员工 了解公司产品源代码中的业务逻辑算的上是最重