首页 > 代码库 > 服务器程序DEBUG
服务器程序DEBUG
服务器程序DEBUG
服务器端设定
Tomcat
默认我们启动Tomcat是使用下边的命令
./catalina.sh start
如果想DEBUG的话,只需要加一个参数打开JPDA(Java Platform Debugger Architecture)就可以了
./catalina.sh jpda start
注:默认的监听端口是8000,如果想修改这个端口的话,可以修改环境变量JPDAADDRESS。 如果我们的服务器是通过daemon.sh启动的tomcat话,貌似没有找到默认打开JPDA的方法,我们可以环境变量CATALINAOPTS达到同样的效果
export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8088,server=y,suspend=n"
普通JAVA程序
我们可以在Java命令中加入如下参数
-Xdebug-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
本地设定
在eclipse的“Run”菜单下选择“Debug...”菜单,在弹出的对话框左边的菜单中选择“Remote Java Application”菜单,右键点击,选择“New”,这个时候弹出一个需要填写参数的对话框。在弹出的框中,定义项目名称,选择要断点调试的项目,Connect type(默认Standard (Socket Attach)),定义我们的工程放在哪里,填写他的ip以及提供的服务端口号
参数说明
Xdebug
启用调试特性。
-Xrunjdwp:<sub-options>
在目标 VM 中加载 JDWP(Java 调试网络协议Java Debug Wire Protocol) 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。下面介绍一些特定的子选项。 注,从 Java V5 开始,您可以使用 -agentlib:jdwp 选项,而不是 -Xdebug 和 -Xrunjdwp。但如果连接到 V5 以前的 VM,只能选择 -Xdebug 和 -Xrunjdwp。下面简单描述 -Xrunjdwp 子选项。
transport
这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。
server
如果值为 y,目标应用程序监听将要连接的调试器应用程序(VM端作为服务器)。否则,它将连接到特定地址上的调试器应用程序(eclipse端作为服务器)。
address
这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
suspend
如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。
参考文献
1.http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/
2.http://jiangzhengjun.iteye.com/blog/683603