一. 背景:
在测试工作中,为方便发现代码中的逻辑问题,尝试使用远程debug模式,在测试过程中走查代码,不仅可以辅助测试减少与开发的沟通成本,更便于了解业务提升测试深度。
二. 配置方式:
1. 调试的配置方式主要为设置JVM的参数,使之工作在debug模式下,常用参数为:
1
|
-Xdebug -Xrunjdwp:transport=dt_socket,address=8012,server=y,suspend=n |
2. 服务器端配置:
若项目为web项目,可在tomcat的启动程序如catalina.sh中添加如下:
若项目为javaapp项目,可在项目的default文件中添加如下:
3. idea配置
打开idea中的run/debug configurations, 选择remote类型,地址配置为服务器地址,端口配置为上述配置参数中的address,
4. 重启项目,即可开启远程debug模式
三. 参数解释:
1. JAVA支持调试功能,并提供了一个简单的调试工具JDB,其可支持设置断点及线程级的调试;
2. 各参数解释:
-Xdebug是通知JVM工作在DEBUG模式下
-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:
transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式,其中,dt_shmem只适用于Windows平台。
server参数是指是否支持在server模式的VM中.
onthrow指明,当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。
launch指明,当JVM被中断下来时,执行的可执行程序。该参数可选
suspend指明,是否在调试客户端建立起来后,再执行JVM。
onuncaught(=y或n)指明出现uncaught exception 后,是否中断JVM的执行.