Thursday, June 10, 2010

使用jdb调试webapps

一般如果需要调试Tomcat或者Jboss的Web Application时,多用eclipse等集成环境。但也会碰到某些情况,比如开发环境内存限制等。这时候可以用jdb作简单的调试。
其实方法很简单,基本原则就是在web server或者app server启动jvm的时候,加上jdwp参数,这样jvm会打开一个端口和jdb通讯。然后再启动jdb连接上这个端口就可以了。
具体到tomcat,可以先建立以下一个脚本:

export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
export JPDA_SUSPEND=y
./catalina.sh jpda start


存成startdebug.sh,放在tomcat的bin目录下

然后用这个脚本启动tomcat

接着就可以用
jdb -attach 8000来启动jdb

用stop 语句设好断点。比如
stop in HelloWorldExample.doGet

然后打开浏览器,进入tomcat自带的例子中的HelloWorld Servlet中,这时候jdb应该执行到断点,就可以用jdb命令跟踪或者打印变量了。

No comments:

Post a Comment