博客
关于我
【Java远程debug】
阅读量:427 次
发布时间:2019-03-06

本文共 718 字,大约阅读时间需要 2 分钟。

转自

一、远程debug原理

远程调试的原理是两个JVM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。

被debug的机器需要开启debug模式,debug使用的客户端可以是eclipse,总之我使用eclipse已经成功了。

二、操作步骤

1.服务端设置

由于我们经常将程序部署到linux机器上,所以通常使用的是war、tar包或者直接使用可运行的jar包,由于近来spring-boot的盛行,直接使用可执行的jar包成为了最流行的部署方式:

jdk1.7之后使用命令:

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar you-runnable-jar.jar

  • jdwp:是 Debug Wire Protocol的缩写
  • server=y表示是监听其他debugclient端的请求
  • address=8000表示服务会在端口号8000监听debug请求,客户端必须设置这个端口号才能进行dubug
  • suspend表示是否在调试客户端建立连接之后启动 VM。如果为y,那么当前的VM就是suspend直到有debug client连接进来才开始执行程序。如果你的程序不是服务器监听模式并且很快就执行完毕的,那么可以选择在y来阻塞它的启动。

当出现以下提示的时候表示服务端已经使用deubg模式启动:

 

2.客户端设置

eclipse毕竟还是我们最熟悉的IDE,所以使用它作为dubug的客户端。

  

   

  

3.测试

使用客户端发起一个请求,可以直接eclipse会直接进入debug模式。

 

 

转载地址:http://sycyz.baihongyu.com/

你可能感兴趣的文章
对象的可见性 - volatile篇
查看>>
端口重用
查看>>
为什么面试完,总是让你回去等通知?
查看>>
Java 中初始化 List 集合的 6 种方式!
查看>>
终于有人把 HTTPS 原理讲清楚了!
查看>>
别乱提交代码了,看下大厂 Git 提交规范是怎么做的!
查看>>
在滴滴和头条干了 2 年后端开发,太真实…
查看>>
送给你 12 个 Git 使用技巧!
查看>>
使用 Redis 实现一个轻量级的搜索引擎,牛逼!
查看>>
你还在用分页?试试 MyBatis 流式查询,真心强大!
查看>>
推荐一款 ES 集群可视化工具:Cerebro,简单、实用!
查看>>
你还在用命令看日志?快用 Kibana 吧,一张图片胜过千万行日志!
查看>>
python进阶(3)json文件与python字典的转化
查看>>
Centos中更改hostname
查看>>
Linux中对用户操作
查看>>
大数据整理——数据集成
查看>>
Linux查看CUDA和cuDNN版本
查看>>
centos修改mysql5.7默认端口后启动异常
查看>>
java面试系列<4>——IO
查看>>
来讲讲你对ThreadLocal的理解
查看>>