一. 背景:java
在测试工做中,为方便发现代码中的逻辑问题,尝试使用远程debug模式,在测试过程当中走查代码,不只能够辅助测试减小与开发的沟通成本,更便于了解业务提高测试深度。web
二. 配置方式:tomcat
1. 调试的配置方式主要为设置JVM的参数,使之工做在debug模式下,经常使用参数为:bash
-Xdebug -Xrunjdwp:transport=dt_socket,address=8012,server=y,suspend=n
2. 服务器端配置:服务器
若项目为web项目,可在tomcat的启动程序如catalina.sh中添加以下:app
若项目为javaapp项目,可在项目的default文件中添加以下:socket
3. idea配置ide
打开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的执行.
参考文档:
http://calvinliu.iteye.com/blog/876009
http://ks.netease.com/blog?id=8113