java远程debug(基于eclipse)

由于在某些情况下,源码不全,或者有部分源码,这种时候就可以运用远程调试去解决,比如在前段时间写了一个flume的intercept,在上线过程中发现了intercept并没有生效,这种时候就用到了远程调试,发现并解决了问题。
以下说明如何应用远程debug
– 在JAVA虚拟机启动时添加如下参数

-Xdebug 
-Xnoagent 
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y 

参数详解
–Xdebug 告诉jvm运行在debug模式下
–Xnoagent 禁用默认sun.tools.debug调试器。
–Xrunjdwp transport 指定连接方式(包括socket传输和内存传输两种,其中内存传输只支持windows,而且内存传输不支持远程调试)dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式,其中,dt_shmem只适用于Windows平台。
–address 监听端口,以接收debug客户端发起的TCP连接。
–server =y 表示在remote debugging会话中作为服务端
–suspend =y 表示在客户端建立连接前,服务端被挂起;=n 则不会被挂起。 专门调试时建议设置成y
–onthrow指明,当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。
– -Djava.compiler=NONE 禁止 JIT 编译器的加载。
配置后并启动应用,这时候程序是在阻塞的,当有来自8787端口的请求时才会继续,这样是为了防止调试端与server端不一致,无法捕捉到问题。
采用eclipse进行debug
右键源码程序(确保本地代码与远程代码保持一致)—DebugAs—Debug Configurations—Remote JAVA Application(双击)—在弹出的选项卡中添加Host/Port,—点击Debug。
接下来程序如果执行到断点的位置,就回进入到eclipse中了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值