JDWP远程调试详解
文章目录JDWP介绍JDWP使用说明JDWP具体操作在IDEA 中进行远程调试JDWP介绍JDWP:Java Debug Wire Protocol (Java 调试协议)前面我们已经把项目打成jar包,可以直接在目标服务器上执行。启动命令:java -jar kernel-1.0-SNAPSHOT.jar但是在日常工作中,难免会遇到这样场景,明明在本地测试没有任何问题,一到测试环境、开发环境就抛
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远程的代码了🥰。
信息在远程服务器打印
🥳
更多推荐
所有评论(0)