Java程序远程debug

介绍说明

作为程序员都知道,本地代码可以是可以debug进行逐行调试的,但是一旦部署在上产环境上,并出现了一些问题的时候不得逐行打印日志用来排查问题;其实如果是集群形式下,可以切换一台机器进行远程bug调试跟踪一下,所以远程debug模式调试非常方便的能够处理线上问题,下面介绍一下远程debug的几种配置方式。

tomcat配置

方法一

startup.sh中的最后一行 exec "$PRGDIR"/"$EXEXUTABLE" start "$@"中的start修改成 jpda start,默认的调试端口是8000 ,可以在catalina.sh文件中设置JPDA_APPDESS=8000使用startup.sh或者catalina.sh jpda start启动tomcat

方法二

catalina.sh里添加:

CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899" 

jboss 配置

打开JBOSS_HOME/bin目录下的run.conf文件,找到:

#JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"

将其修改为:

 JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

8787为调试的端口号。

说明

    连接到myhost:8899提供的调试服务

    -Xdebug是通知JVM工作在DEBUG模式下,

    -Xrunjdwp是通知JVM使用(Java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:

    transport指定了调试数据的传送方式

    dt_socket            是指用SOCKET模式

    server=y/n            VM 是否需要作为调试服务器执行。

    suspend=y/n           是否在调试客户端建立连接之后启动 VM 。

    启动服务端

问题

可能出现的连接问题:

Failed to connect to remote VM. Connection refused.

Connection refused: connect。

image.png

不要慌,没关系,出现如上图所示的情况可能是已经建立了一个连接了。解决方法:去debug透视图中:

image.png

找到点击image.png

jar 文件配置

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar demo.jar

说明

本文只做学习参考,如有任何不准确的地方欢迎指正。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值