JDWP远程调试详解

JDWP介绍

JDWP:Java Debug Wire Protocol (Java 调试协议)

前面我们已经把项目打成jar包,可以直接在目标服务器上执行。
启动命令:java -jar kernel-1.0-SNAPSHOT.jar
但是在日常工作中,难免会遇到这样场景,明明在本地测试没有任何问题,一到测试环境、开发环境就抛异常。接下来我们就介绍一下怎么Debug 远程服务器上的代码。(前提要保证本地代码和远程服务器上的代码一致)

JDWP使用说明

java -agentlib:jdwp=help 查看 jdwp 的使用说明

~ java -agentlib:jdwp=help

jdwp usage: java -agentlib:jdwp=[help]|[<option>=<value>, ...]
 
Option Name and Value            Description                       Default       具体说明
---------------------            -----------                       -------
suspend=y|n                      wait on startup?                  y             是否在启动时就等待 默认值y, n 表示不等待
transport=<name>                 transport spec                    none          传输规范 
address=<listen/attach address>  transport spec                    ""            指定端口或者指定连接地址和端口
server=y|n                       listen for debugger?              n             是否开启debugger 监听
launch=<command line>            run debugger on event             none          运行debugger 事件
onthrow=<exception name>         debug on throw                    none         
onuncaught=y|n                   debug on any uncaught?            n             
timeout=<timeout value>          for listen/attach in milliseconds n            调试超时时间,单位是毫秒
mutf8=y|n                        output modified utf-8             n            输出为utf-8
quiet=y|n

Obsolete Options (废弃)
----------------
strict=y|n
stdalloc=y|n

Examples (举例)
--------
  - Using sockets connect to a debugger at a specific address:
    java -agentlib:jdwp=transport=dt_socket,address=localhost:8000 ...
  - Using sockets listen for a debugger to attach:
    java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y ...

JDWP具体操作

服务端启项目动命令:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5050 -jar xxx.jar

在IDEA 中进行远程调试

使用命令启动项目

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5050 -jar kernel-1.0-SNAPSHOT.jar

在这里插入图片描述
IDEA添加远程连接
在这里插入图片描述
在这里插入图片描述
Remote JVM Debug
在这里插入图片描述
远程信息配置
在这里插入图片描述

在需要的地方打上断点,然后Debug启动

在这里插入图片描述
访问对应接口:http://localhost:8888/hello
在这里插入图片描述

断点成功进入,可以尽情的Debug远程的代码了🥰。

信息在远程服务器打印
在这里插入图片描述

🥳

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值