介绍说明
作为程序员都知道,本地代码可以是可以debug进行逐行调试的,但是一旦部署在上产环境上,并出现了一些问题的时候不得逐行打印日志用来排查问题;其实如果是集群形式下,可以切换一台机器进行远程bug调试跟踪一下,所以远程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。
不要慌,没关系,出现如上图所示的情况可能是已经建立了一个连接了。解决方法:去debug透视图中:
jar 文件配置
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar demo.jar
说明
本文只做学习参考,如有任何不准确的地方欢迎指正。
我的邮箱: lulongji2011@163.com
版权声明:
本文为博主原创文章,转载请附上原文出处链接和本声明。