前言
线上服务器出现的bug,因为各种复杂环境的原因,经常会很难在本地调试,只能到处打log,然后去服务器查看log日志,以定位问题产生原因。是否一工具能像idea中本地debug一样能直接断点调试呢 ?
介绍
JDWP(Java Debug Wire Protocol)调试线协议,及通过客户端与远程java服务程序之间的传输协议。
命令文档
jdwp在哪里呢 ?首先我们查看一下java的帮助命令,找到相关的命令行,即-agentlib。
java --help
接下来我们看一下agentlib相关的帮助文档,大家可以简单你翻译阅读一下:
> java -agentlib:jdwp=help
使用
服务端:启动
addres是指启动的地址及端口,服务器本身可直接输入端口就行
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=9001 -jar source-0.0.1-SNAPSHOT.jar
客户端:idea
Edit Configuration - 创建remote - 运行创建的remote
name : 自定义名称
host : 远程服务器地址 port: 要监听的远程服务端口
在idea中,就跟本地的调式一致,打上断点,访问远程服务即可自动监听断点。