我很想学习如何调试eclipse IDE。 回到我使用VS进行.NET开发的时候,我可以随时将VS附加到进程并开始追踪问题。我希望有一些与eclipse类似的东西,但作为Java世界的新手,我不知道。
当我与iBUS(在Ubuntu 9.10上)一起运行时,我的日食最近经常出现。我希望我能找到什么真正挂起我的日食并避免这种情况(想象一下你的日食会挂起,你打开的每个文件都被关闭了。这只会让我发疯。)
答案 0 :(得分:11)
编辑你的eclipse.ini文件,在底部添加以下内容(在-vmargs下面):
-Xdebug
-Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
然后在另一个相同版本的Eclipse中,您可以导入您感兴趣的调试插件。档案 - >导入... - >插件开发 - >插件和碎片。导入从活动平台导入为“带源文件夹的项目”,在下一个选项卡上选择您感兴趣的插件。
根据需要设置断点。
然后在Debug Configurations中创建一个新的“远程Java应用程序”。 localhost,端口8000.在源选项卡上添加Java项目,然后进行调试。
答案 1 :(得分:2)
您可以使用任何Java应用程序来查看当前正在发生的事情,即发送kill -QUIT
。这将导致JVM将其所有线程的堆栈跟踪转储到stdout。这样做三次,介于两者之间,你可以看到哪些线程没有很好地移动。
要尝试的另一件事是将JConsole附加到正在运行的进程。
答案 2 :(得分:2)
有a thread about finding cause of a freezing Eclipse。
其中一个解决方案建议使用-consolelog
选项启动Eclipse。这可能有助于快速浏览一下(在进行实际调试之前)。
答案 3 :(得分:1)
回到我使用VS进行.NET开发的时候,我可以随时将VS附加到进程并开始追踪问题。
使用Java平台调试器架构(JPDA)在Java中也可以进行远程调试,只需要启用远程调试即可启动要调试的应用程序。这里是an article,展示了如何执行此操作以及如何配置Eclipse以调试删除应用程序。
请注意,从Java 5开始,您应该优先使用-agentlib:jdwp
和-Xdebug
选项-Xrunjdwp
选项,如Sun VM Invocation Options中所述。
更新:Eclipse 是一个Java应用程序,因此应该可以添加eclipse.ini
中文章中提到的选项。从来没有尝试过(我错过了你想调试Eclipse本身的事实)。
答案 4 :(得分:0)
基本上有两种调试Java应用程序的方法(例如Eclipse)。您可以使用JConsole,但它不会提供很多细节。要附加JConsole,您必须启用远程调试;这需要一个JVM参数,您可以将其写入Eclipse可执行文件旁边的eclipse.ini文件中。
另一种选择是从Eclipse启动运行时工作台:这用于测试您自己的插件,但由于Eclipse插件是相同的,因此可以使用Eclipse应用程序启动调试会话。为此,您需要在工作区中至少安装一个插件(例如,创建一个新的hello world插件项目),然后您可以将其作为Eclipse应用程序进行调试。