美文网首页
3-JDWP远程调试详解

3-JDWP远程调试详解

作者: 小安的大情调 | 来源:发表于2020-06-09 07:40 被阅读0次

我准备战斗到最后,不是因为我勇敢,是我想见证一切。 --双雪涛《猎人》

[TOC]

Thinking

  1. 一个技术,为什么要用它,解决了那些问题?
  2. 如果不用会怎么样,有没有其它的解决方法?
  3. 对比其它的解决方案,为什么最终选择了这种,都有何利弊?
  4. 你觉得项目中还有那些地方可以用到,如果用了会带来那些问题?
  5. 这些问题你又如何去解决的呢?

声明:本文基于springboot 2.1.3 2.1.3.RELEASE

在上一篇中有说到,springboot有多种启动方式,那么有一个疑问啊?

在使用idea 直接右键启动,加载SpringBoot入口类的类加载器是什么呢?跟使用Java -jar 有区别嘛?

image-20200525135823086
  • 显然,直接使用右键启动:是系统/应用类加载器 AppClassLoader
  • 使用java -jar *.jar 就是上述一直分析的,自定义的类加载器

1、源码的调试

image-20200525141217288

​ 在源码的调试中,像在研究SpringBoot启动方式的类加载过程中,org.springframework.boot.loader的jar是不会影响到springboot的执行流程的,那么直接在idea中的org.springframework.boot.loader打断点,根本就没有作用。

​ 这里就引入了一种Java 自身就支持的远程Debug模式:JDWP

2、具体操作

​ 在java -h 中可以看到对JDWP的描述。

image-20200525140409106

根据提示运行指令

image-20200525140433488

对端口进行监控:

$ java -agentlib:jdwp=transport=dt_socket,server=y,address=5050 spring_lecture-0.0.1.jar
image-20200525140951197

等待远程服务器启动,监控端口为5050

  • 使用idea 创建 5050 远程端口,并且以debug启动
image-20200525142531684

这样就实现了远程debug了。

image-20200525142629931 image-20200525142725661 image-20200525142817032 image-20200525143022942

🐮

本文仅供笔者本人学习,有错误的地方还望指出,一起进步!望海涵!

转载请注明出处!

欢迎关注我的公共号,无广告,不打扰。不定时更新Java后端知识,我们一起超神。


qrcode.jpg

——努力努力再努力xLg

加油!

相关文章

网友评论

      本文标题:3-JDWP远程调试详解

      本文链接:https://www.haomeiwen.com/subject/znvjtktx.html