Tomcat及java程序远程debug

jdwp协议:

JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。

Tomcat也支持该协议

 

https://www.ibm.com/developerworks/cn/java/j-lo-jpda3/

自带远程设置,无需修改starp.sh

catalina.sh配置

#remote debug

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

……

CATALINA_OPTS="$JPDA_OPTS $CATALINA_OPTS"

……

检查监控端口

#检查监控端口8899是否启动监听

[root@storm-nimbus-a opt]# netstat -nap | grep 8899

tcp        0      0 0.0.0.0:8899                0.0.0.0:*                   LISTEN      13452/java   

远程调试演示

 

 

 

 

 

断开远程调试

 

自定义远程设置

catalina.sh配置

#remote debug  远程屏蔽

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

……

if [ "$1" = "jpda" ] ; then

  if [ -z "$JPDA_TRANSPORT" ]; then

    JPDA_TRANSPORT="dt_socket"

  fi

  if [ -z "$JPDA_ADDRESS" ]; then

    JPDA_ADDRESS="54321"

  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="$JPDA_OPTS $CATALINA_OPTS"

  shift

fi

startup.sh配置

##修改前

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

##修改后

exec "$PRGDIR"/"$EXECUTABLE"  jpda  start "$@"

检查监控端口

#检查监控端口54321是否启动监听

[root@storm-nimbus-a bin]# netstat -nap |grep 54321

tcp        0      0 0.0.0.0:54321               0.0.0.0:*                   LISTEN      15247/java    

 

演示配置

 

演示效果同上

[root@storm-nimbus-a bin]# ps -ef |grep tomcat

…

-agentlib:jdwp=transport=dt_socket,address=54321,server=y,suspend=n

…

普通程序远程调试

演示脚本

[root@storm-nimbus-a opt]# java  -agentlib:jdwp=transport=dt_socket,address=12345,server=y,suspend=n -jar Btrace.jar 123

演示配置

 

 

 

演示效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值