2011-07-28 114 views
0

我正在开发一个多线程的Web服务器小程序,并且在过去的一周内一直处理system.out.println's作为我的“调试”工具。据我了解,我构建的.jar被构建器分割并放入.html文件,然后在访问Web服务器时吐出。在JVM中调试多线程的Web服务器

我想知道是否有某种方法可以将调试器(插件?)附加到Java的虚拟机上,这将允许我在操作Web服务器时逐步执行代码 - 这里有一些重要的例外:追查是非常令人沮丧的。我相信他们是与多线程相关的计时问题,这使得它们在尝试定位时更加不可靠,并且可能意味着调试器将无法正确处理。我不认为这很重要,但我在建的IDE是Netbeans。

我已经接管了以前的开发者的匆匆未完成的项目,并且已经远远超过了我的脑海。 = /预先感谢任何可能的解决方案,我很感激。

+0

什么是网络服务器小程序? Netbeans能够进行多线程调试。 – MRalwasser

+1

[本FAQ页面](http://wiki.netbeans.org/FaqDebuggingAppletRemotely)是Google搜索条件中的第一个搜索结果:debug applet netbeans。不能发布为答案,因为我不确定是要执行服务器的多线程调试,还是只需远程调试小程序。 –

+0

啊,多线程竞态条件。哦,有趣。查看Java 5 + 6中的并发utils,并学习如何使用synchronized和transient。这可能会非常有用。 –

回答

1

当然可以。

您需要启动带有合适参数的Web服务器JVM,以便远程调试它。你可以在http://download.oracle.com/javase/1.3/docs/tooldocs/win32/jdb.html看到如何去做。 JDK和javac一起提供了jdb。然后启动IDE调试器以连接到JVM ,并告诉它您的类的源位于何处。请记住使用调试信息进行编译。

正如你在Netbeans中已经考虑过的那样,只要在调试模式下启动它,那么上述所有额外工作都将自动完成。

+0

Vineet在注释中链接的调试器设置似乎不起作用。看起来像没有我见过的解决方案的常见问题。 因此,好像我会尝试你的更长时间的解决方案。谢谢。 –

+0

抱歉给一个潜在的凹凸;你有什么想法如何让JVM开始允许调试吗?我已经修改了JRE运行时参数,但由于某种原因它没有保存它们。在线搜索表明,这是其他人以前遇到的问题,没有给出解决方案。 如果您有任何进一步的想法,我会很高兴给他们一个尝试。 –

+0

从Netbeans内部?对不起,我做了Eclipse。也许你想明确地打开一个问题呢? –