java的远程调试

如果要开启JVM的远程调试,需要在JVM的启动参数中加入
-Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=y
 
各个参数意义如下:
-Xdebug:启用调试特性
-Xrunjdwp:启用JDWP实现,它包含若干子选项:
transport=dt_socket:表示使用套接字传输。
address=8000:JVM在8000端口上监听请求。
server=y:y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
suspend=y:y表示启动的JVM会暂停等待,直到调试器连接上。
 
如何在tomcat上加入远程调试(以apache-tomcat-6.0.37版本为例)
将startup.sh中的
exec "$PRGDIR"/"$EXECUTABLE" start "$@"
 
修改成
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
 
即可
因为在catalina.sh中会判断是否开启远程调试,而且各个参数均有默认值,如下所示
if [ "$1" = "jpda" ] ; then
  if [ -z "$JPDA_TRANSPORT" ]; then
    JPDA_TRANSPORT="dt_socket"
  fi
  if [ -z "$JPDA_ADDRESS" ]; then
    JPDA_ADDRESS="8000"
  fi
  if [ -z "$JPDA_SUSPEND" ]; then
    JPDA_SUSPEND="n"
  fi
  if [ -z "$JPDA_OPTS" ]; then
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
  fi
  CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
  shift
fi
 
默认tomcat启动时不挂起,不会等待调试器连接上,这也是我们最常用的的模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值