2010-02-24 61 views
6

我很想学习如何调试eclipse IDE。 回到使用VS for .NET开发的时候,我可以随时将VS附加到进程并开始追踪问题。我希望会有类似eclipse的东西,但作为Java世界的新手,我不知道这一点。调试eclipse IDE本身

当我与iBUS(Ubuntu 9.10)一起运行时,我的eclipse最近经常挂起。我希望我能找出真正悬挂我的日食的东西,并避免这种情况(想象一下你的日食挂起,每一个打开的文件都关闭了,这只会让我发疯)。

回答

9

编辑您的eclipse.ini文件的添加下面的底部(下-vmargs):

-Xdebug 
-Xnoagent 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 

然后在相同版本的另一个Eclipse,你可以输入你感兴趣的调试插件。文件 - >导入... - >插件开发 - >插件和片段。导入从活动平台导入为“带源文件夹的项目”,在下一个选项卡上选择您感兴趣的插件。

根据需要设置断点。

然后在调试配置中创建一个新的“远程Java应用程序”。本地主机,端口8000.在源选项卡上添加Java项目并进行调试。

+0

Woot Woot这是我寻找的东西 – 2014-03-04 22:44:02

2

你可以用任何Java应用程序做的事情来看看现在正在发生的事情是发送一个kill -QUIT。这将导致JVM将其所有线程的堆栈跟踪转储到stdout。在这之间做一次三次这样的事情,你可以看到哪些线程没有很好地移动。

要尝试的另一件事是将JConsole附加到正在运行的进程。

+0

嗨,你可以告诉我如何发送'杀 - QUIT'? – 2010-02-24 14:07:05

+0

你说你在Ubuntu上,所以:1)找到进程ID,也许使用ps auxw。 2)从外壳'kill -QUIT ' – Thilo 2010-02-24 15:43:18

1

回到使用VS for .NET开发的时候,我可以随时将VS附加到进程并开始追踪问题。

使用Java平台调试器体系结构(JPDA)也可以在Java中进行远程调试,只需要在启用远程调试的情况下启动要调试的应用程序。这里是an article显示如何做到这一点,以及如何配置Eclipse调试删除应用程序。

请注意,从Java 5开始,您应该优先选择-agentlib:jdwp选项而不是-Xdebug-Xrunjdwp选项,如Sun VM Invocation Options中所述。

更新:的Eclipse 一个Java应用程序,所以应该是可以添加在eclipse.ini文章中提到的选项。虽然没有尝试过(我错过了你想调试Eclipse本身的事实)。

+0

这篇文章告诉我关于调试jar文件的问题。但是我发现eclipse是(看起来像?)本地可执行文件。我如何告诉eclipse将调试消息发布到端口中? – 2010-02-24 14:20:57

0

调试Java应用程序(例如Eclipse)基本上有两种方法。你可以使用JConsole,但它不会给你很多细节。要附加JConsole,您必须启用远程调试;这需要一个JVM参数,您可以将其写入Eclipse可执行文件旁边的eclipse.ini文件中。

另一个选择是从Eclipse启动一个运行时工作台:它用于测试自己的插件,但由于Eclipse插件相同,可以使用Eclipse应用程序启动调试会话。为此,至少需要在工作空间中有一个插件(例如,创建一个新的hello world插件项目),然后您可以将其作为Eclipse应用程序进行调试。