jvm之远程调试

139 篇文章 3 订阅
订阅专栏

写在前面

工作中,有时会出现测试环境有问题,本地却正常的情况,此时我们就可以通过JVM提供的远程调用的功能,实现在本地debug调试测试环境代码。

1:例子1直接运行class

首先我们来定义类:

package com.feng.map.demo;
import java.util.*;

public class MapMain {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("aa", "aa");
        map.put("bb", "bb");
        map.put("cc", "cc");
        map.put("dd", "dd");
        map.put("ff", "f");
 
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry<String, String> entry : entrySet) {
            System.out.println(entry.getKey() + " ------ " + entry.getValue());
        }
    }
}

接着使用如下命令启动,开启JVM远程debug接口:

D:\test>javac -d . MapMain.java

D:\test>java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=9093 com.feng.map.demo.MapMain
Listening for transport dt_socket at address: 9093

这样当前启动的JVM虚拟机就会通过9093端口来监听服务调用了,接着我们配置idea的remote debug功能,如下:

在这里插入图片描述

然后我们运行上图配置的remotemap,就可以进行调试远端代码了,如下:

在这里插入图片描述

2:运行jar

自己准备一个可以执行的jar包,我这里是一个基于springboot的项目,如下方式启动:

D:\test>D:\\program_files\\jdk-17.0.1\\bin\\java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=9093 pricing-0.0.1-SNAPSHOT.jar
Listening for transport dt_socket at address: 9093
11:25:40,036 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.4.5
11:25:40,059 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
11:25:40,061 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
11:25:40,063 |-INFO in ch.qos.logback.classic.BasicConfigurator@1165b38 - Setting up default configuration.
11:25:40,694 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@4c12331b - URL [jar:file:/D:/test/pricing-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/logback-boot.xml] is not of type file
...

然后在idea中配置远程关联到本地源码,从而在本地debug,如下:

在这里插入图片描述

然后我们在想要debug的位置打上断点,如下:

在这里插入图片描述

接着访问远端服务器接口,就可以开始debug本地的代码了,如下:

在这里插入图片描述

3:部署到Tomcat

参考 这篇文章 准备测试项目,之后先使用idea启动,之后会在CATALINA_BASE中生成项目对应的war的解压包,接下来我们测试如下命令是否能够启动注意你本地目录和我不一样

set "CATALINA_BASE=C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_test-remote-debug_2" && set "CATALINA_HOME=D:\program_files\apache-tomcat-8.5.66-windows-x64_tmp\apache-tomcat-8.5.66" && set "CATALINA_TMPDIR=D:\program_files\apache-tomcat-8.5.66-windows-x64_tmp\apache-tomcat-8.5.66\temp" && set "JRE_HOME=D:\program_files\jdk1.8.0_202" && set "CLASSPATH=D:\program_files\apache-tomcat-8.5.66-windows-x64_tmp\apache-tomcat-8.5.66\bin\bootstrap.jar;D:\program_files\apache-tomcat-8.5.66-windows-x64_tmp\apache-tomcat-8.5.66\bin\tomcat-juli.jar" && D:\\program_files\\apache-tomcat-8.5.66-windows-x64_tmp\\apache-tomcat-8.5.66\\bin\\catalina.bat run

这样就说明我们配置成功了,之后我们需要配置Tomcat启动的时候启用远程debug的能力,打开catalina.bat搜索if not ""%1"" == ""run"" goto mainEntry在其上增加如下内容:

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

接着使用上述命令启动,输出如下内容则说明配置成功:

C:\Windows\System32>set "CATALINA_BASE=C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_test-remote-debug_2" && set "CATALINA_HOME=D:\program_files\apache-tomcat-8.5.66-windows-x64_tmp\apache-tomcat-8.5.66" && set "CATALINA_TMPDIR=D:\program_files\apache-tomcat-8.5.66-windows-x64_tmp\apache-tomcat-8.5.66\temp" && set "JRE_HOME=D:\program_files\jdk1.8.0_202" && set "CLASSPATH=D:\program_files\apache-tomcat-8.5.66-windows-x64_tmp\apache-tomcat-8.5.66\bin\bootstrap.jar;D:\program_files\apache-tomcat-8.5.66-windows-x64_tmp\apache-tomcat-8.5.66\bin\tomcat-juli.jar" && D:\\program_files\\apache-tomcat-8.5.66-windows-x64_tmp\\apache-tomcat-8.5.66\\bin\\catalina.bat run
...
Using CATALINA_OPTS:   "-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
Listening for transport dt_socket at address: 8000
05-May-2023 13:56:25.016 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/8.5.66
...

然后配置JVM remote,如下:

在这里插入图片描述

写在后面

参考文章列表

tomcat intellij远程调试 。

JVM远程调试功能开启,与原理 。

springmvc之编程步骤 。

【后端】JVM 远程调试
hjh_cos
12-06 435
使用 IDEA 和宝塔配合快速实现代码远程调试
JVM远程调试
chan_gan_的博客
03-29 372
【代码】JVM远程调试
Remote JVM Debug远程调试
u800820的专栏
03-30 3514
前言 IDEA中Remote JVM Debug有什么作用?它可以用来在IDEA中debug调试远程服务器中的代码。本文就简单来介绍一下其用法。 一、JVM远程调试的原理是什么? Java远程调试原理是在两个JVM间通过debug进行socket通信,以达到远程调试的目的。 二、使用步骤 在IDEA中可以点击Run/Debug Configurations, 再点击"+"号添加一个Remote JVM Debug,并填写远程服务器的IP地址和端口号; 其中的参数为IDEA默认添加进去的,不用修改; 通过
Java服务如何开启Debug远程调试
最新发布
仗键走天涯
07-21 655
日常项目中,通常我们的代码都是部署到远程的服务器,有时线上出现了问题,经常需要我们增加一些日志来排查问题,但是如果是测试环境的场景下或者我们能进行远程调试的话,我们就可以使用远程Debug方式进行远程调试,不用频繁的修改代码部署到远程服务器上。这时就需要我们的服务需要开启远程Debug了。
JVM 远程调试
web15185420056的博客
04-19 554
经过测试可用: 远程jvm配置:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1506 调试方配置:
NC eclipse 远程调试
02-09
在服务器端,我们需要添加以下 JVM 参数,以便启用远程调试功能: * jdk1.5 版本之前:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10.12.24.7:8770 * jdk1.6 版本之后:-agentlib:jdwp=...
IDEA 远程调试 Remote JVM Debug
@chen
06-29 2243
IDEA 远程调试 Remote JVM Debug
如何基于Idea远程调试tomcat war包及jar包
09-07
IntelliJ IDEA(Idea)提供了强大的远程调试功能,使得开发者可以在本地环境中进行远程调试,极大地提高了开发效率。下面我们将详细讲解如何基于Idea进行远程调试Tomcat上的war包和jar包。 ### 一、war包方式 1. *...
jvm提供的远程调试 简单使用
m0_64639742的博客
03-22 415
远程调试 简单使用
jvm远程调试
ctf_htj的专栏
12-12 1468
实例java_opts: export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms512m-Xmx512m  -XX:PermSize=256m-XX:MaxPermSize=256m -verbose:gc -Xloggc:/export/home/tomcat/logs/oss.play.360buy.net/apps
JVM远程DEBUG(JPDA )
软件猿扫地僧
03-29 4953
原理 1. JPDA简介 JPDA(Java Platform Debugger Architecture)为Java平台上的调试器定义了一个标准的体系结构。该体系结构包括3个主要组成部分:JVM TI、JDI和JDWP。JVM TI的全称是Java Virtual Machine Tool Interface,它定义了JVM为了支持调试而必须提供的功能及相应的访问接口。这些访问接口是以本地语言
远程debug调试java代码
weixin_30367543的博客
12-16 397
远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试。生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试。 整体过程是通过修改远程服务JAVA_OPTS参数,然后本地通过Eclipse或IDEA等工具调试。 下面简单介绍下理论。 理论 JPDA(Java Platform Debugger Architecture)是Ja...
jvm 远程调试配置
lanse_huanxiang的专栏
03-11 497
jvm远程监控&调试
idea远程debug SpringBoot项目
dibai1921的博客
07-09 563
idea中Run->Edit Configurations... 填写name Host port 点击Apply即可; 在远程服务启动的时候 运行SringBoot时 加上 -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005示例: java -jar -Xdebug -Xrunjd...
java远程调试
数据之路
08-19 2409
服务端需在vm arguments一栏下加上    -agentlib:jdwp=transport=dt_socket,server=y,address=8000 并以run模式启动 如果以debug模式启动服务端,将会报 ERROR: Cannot load this JVM TI agent twice, check your java command line for dup
【SpringBoot】服务器JVM远程调试
Confused_的博客
06-20 423
springboot部署服务器如何远程调试
JVM配置远程debug
m0_67401761的博客
04-20 1033
当把一个本地项目部署到远程服务器后有可能出现意想不到错误,这个时候通过远程调试能够更清楚的找到bug所在位置。 JVM配置 方式一 改变catalina.sh的默认配置。其实完全没必要,tomcat已经把调试配置好了,我们只需要稍作修改就能开启远程调试。下面说具体步骤。 修改catalina.sh中一个参数。 上图中红色框中的部分,把默认值改成0.0.0.0:8000,前面的调试ip地址,默认是本地ip调试也就是无法远程调试,0.0.0.0表示所有ip地址都能调试。 2.   关闭tomcat,启动t
jvm远程调试端口开放
08-26
jvm远程调试端口开放的步骤如下: 1. 在运行程序的JVM实例上开启远程调试功能,并指定调试端口。具体步骤可以参考引用中的说明。 2. 确保调试器与运行程序的JVM实例在同一网络环境中,可以进行通信。 3. 在调试器中配置远程调试连接,指定调试端口和连接方式。具体方法可以参考引用或引用[2]中的说明。 4. 启动运行程序的JVM实例。 5. 在调试器中连接到运行程序的JVM实例,确保连接成功。可以使用调试器提供的功能进行远程调试。具体方法可以参考引用中的说明。 总结一下,要开放jvm远程调试端口,需要在JVM实例上开启远程调试功能,并指定调试端口;在调试器中配置连接信息;启动JVM实例;在调试器中连接到JVM实例。具体步骤和方法可以参考相关文档和引用材料中的说明。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JVM 断点调试远程调试](https://blog.csdn.net/weixin_43871785/article/details/132256994)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
写文章

热门文章

  • springMVC之@InitBinder的用法 24778
  • maven之如何查看依赖树 20207
  • MySQL之临时表 19197
  • idea启动项目提示端口占用怎么办 15842
  • 从jar包中读取文件的几种方式 15823

分类专栏

  • netty 21篇
  • 139篇
  • springboot 28篇
  • 字节码编程 32篇
  • Java高级开发进阶教程 35篇
  • 数据结构 7篇
  • java写jvm系列 9篇
  • OAuth2.0 10篇
  • 设计模式 26篇
  • k8s 23篇
  • idea插件开发 10篇
  • redis 27篇
  • git 12篇
  • ElasticSearch 38篇
  • springcloud 17篇
  • jmeter 1篇
  • 工具尝鲜 1篇
  • 分布式 20篇
  • mysql 19篇
  • 大数据处理 1篇
  • dubbo 35篇
  • mycat 1篇
  • springmvc 20篇
  • 水文勿喷 4篇
  • maven 2篇
  • mybatis面试 15篇
  • mybatis 19篇
  • spring 54篇
  • nacos 2篇
  • 读深入浅出springboot2.x 1篇
  • 消息队列 1篇
  • activiti 25篇
  • 卡夫卡 1篇
  • zk 1篇
  • springboot面试 22篇
  • 笔记

最新评论

  • 设计模式之模板方法模式

    锦鲤余: 他的意思是,你写文章一定要注意用词准确

  • springboot之源码分析文章系列

    CSDN-Ada助手: 哇, 你的文章质量真不错,值得学习!不过这么高质量的文章, 还值得进一步提升, 以下的改进点你可以参考下: (1)增加除了各种控件外,文章正文的字数;(2)提升标题与正文的相关性。

  • 授权协议OAuth 2.0之除了授权码许可还有什么授权流程?

    一户董: 感谢认可!

  • 授权协议OAuth 2.0之除了授权码许可还有什么授权流程?

    GQ学编程: 写的很好表情包

  • 从jar包中读取文件的几种方式

    一户董: 很高兴能帮助到你!

大家在看

  • CSS所有选择器的用法及示例(完整版) 819
  • 线程的创建方式 84

最新文章

  • netty编程之基于websocket发送二进制数据
  • 对接阿里asr和Azure asr
  • Option类的常见使用方法
2024
09月 12篇
08月 39篇
07月 42篇
06月 18篇
05月 5篇
04月 14篇
03月 18篇
02月 19篇
01月 12篇
2023年144篇
2022年107篇
2021年209篇
2020年42篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司泉州安溪网站推广优化青浦区谷歌网站优化定制方案长宁有做网站优化服务好seo网站优化专员上海群力网站优化公司多少钱映射网站的优化方式优化英文网站聊城企业网站优化公司冀州市外贸网站优化咸阳网站搜索引擎优化怎么优化网站优化禹州企业网站排名优化网站自然优化哪家有名兴平关键词网站优化网站优化原创文章淮南网站首页优化推荐网站自身seo优化怎么做广东网站推广优化公司推荐陇南市知名的网站优化浦东新区企业网站优化排名安庆网络推广网站优化建设十堰工厂网站优化怎么做聊城哪里有网站优化开户北大青鸟网站优化课程网站整站关键词优化排名技术唐山路南网站优化价格招商广告网站优化怎么做好新网站的优化肥城网站推广优化亳州网站搜索排名优化哪家正规歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化