美文网首页
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