Java调试-远程调试
Java 远程调试
-
启动脚本中添加选项,并重启(JavaSE 5以后java -agentlib:jdwp=…)
1
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
-
JavaSE 5之前(java -Xdebug -Xrunjdwp:…)
1
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=10086,suspend=n,server=y
-
参数说明
- transport
指定运行的被调试应用和调试者之间的通信协议,有如下可选值:- dt_socket: 采用socket方式连接(常用)
- dt_shmem:采用共享内存的方式连接,支持有限,仅仅支持windows平台
- server
- 指定当前应用作为调试服务端还是客户端,默认的值为n(客户端)。
- 如果你想将当前应用作为被调试应用,设置该值为y;如果你想将当前应用作为客户端,作为调试的发起者,设置该值为n。
- suspend
- 当前应用启动后,是否阻塞应用直到被连接,默认值为y(阻塞)。
- 大部分情况下这个值应该为n,即不需要阻塞等待连接。一个可能为y的应用场景是,你的程序在启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。
- address
- 对外暴露的端口,默认值是8000
- 注意:此端口不能和项目同一个端口,且未被占用以及对外开放。
- onthrow
- 这个参数的意思是当程序抛出指定异常时,则中断调试。
- onuncaught
- 当程序抛出未捕获异常时,是否中断调试,默认值为n。
- launch
- 当调试中断时,执行的程序。
- timeout
- 超时时间,单位ms(毫秒)
- 当 suspend = y 时,该值表示等待连接的超时;当 suspend = n 时,该值表示连接后的使用超时。
- transport
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HoleLin's Blog!