【发布时间】:2011-11-24 18:07:16
【问题描述】:
我有一个 GWT Eclipse 项目,我正在使用 Eclipse 来调试项目。 GWT 项目也依赖于其他项目。使用 Eclipse 调试器真的很容易,但是会消耗更多的内存。 Java 进程消耗 500MB 和 eclipse 大约 500 MB,firefox(GWT Plugin) 也是如此。所以我想使用 JDB 来调试我的 GWT 项目。
我该怎么做以及如何将 Tomcat 服务器附加到 jdb ..?
【问题讨论】:
我有一个 GWT Eclipse 项目,我正在使用 Eclipse 来调试项目。 GWT 项目也依赖于其他项目。使用 Eclipse 调试器真的很容易,但是会消耗更多的内存。 Java 进程消耗 500MB 和 eclipse 大约 500 MB,firefox(GWT Plugin) 也是如此。所以我想使用 JDB 来调试我的 GWT 项目。
我该怎么做以及如何将 Tomcat 服务器附加到 jdb ..?
【问题讨论】:
GWT 在调试方面实际上没有什么特别之处:只需使用适当的 JVM 参数启动 DevMode(对于 Sun/Oracle VM,类似于 -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n),然后使用 JDB 附加到它以调试客户端代码和在嵌入式 Jetty 中运行的服务器端代码。
对于 Tomcat,在命令行中添加 jpda(catalina jpda start 而不是 catalina start)就足够了:http://wiki.apache.org/tomcat/FAQ/Developing(注意:-Xdebug -Xrunjdwp 是 Java 5 发布之前的老式方式使用 agents 和 -agentlib 开关;-agentlib 是首选:http://docs.oracle.com/javase/6/docs/technotes/guides/jpda/conninv.html#Invocation)
【讨论】:
main 方法的主类。在本例中,它们是 GWT 的 DevMode 和 Tomcat 的 Bootstrap。