调试EclipseIDE本身
我很想学习如何调试EclipseIDE。 回到我使用VS进行.NET开发的时候,我可以随时将VS附加到进程并开始跟踪问题。我希望eclipse也会有类似的东西,但作为Java世界的新手,我不知道这一点调试EclipseIDE本身,eclipse,ubuntu,Eclipse,Ubuntu,我很想学习如何调试EclipseIDE。 回到我使用VS进行.NET开发的时候,我可以随时将VS附加到进程并开始跟踪问题。我希望eclipse也会有类似的东西,但作为Java世界的新手,我不知道这一点 最近,当我将eclipse与iBUS(在Ubuntu 9.10上)一起运行时,它经常挂起。我希望我能找出真正挂起我的eclipse的原因并避免这种情况(想象一下你的eclipse挂起和打开的所有文件都被关闭了。这简直让我发疯)。任何Java应用程序现在都可以做的一件事就是向它发送一个kill-QU
最近,当我将eclipse与iBUS(在Ubuntu 9.10上)一起运行时,它经常挂起。我希望我能找出真正挂起我的eclipse的原因并避免这种情况(想象一下你的eclipse挂起和打开的所有文件都被关闭了。这简直让我发疯)。任何Java应用程序现在都可以做的一件事就是向它发送一个
kill-QUIT
。这将导致JVM将其所有线程的堆栈跟踪转储到stdout。这样做三次,中间有一秒钟,您可以看到哪些线程没有很好地移动
另一件要尝试的事情是将附加到正在运行的进程
回到我使用VS进行.NET开发的时候,我可以随时将VS附加到进程并开始跟踪问题
使用Java平台调试器体系结构(JPDA)在Java中也可以进行远程调试,您只需启动要调试的应用程序,并启用远程调试。下面展示如何执行此操作以及如何配置Eclipse以调试删除应用程序
请注意,从Java 5开始,您应该更喜欢-agentlib:jdwp
选项,而不是-Xdebug
和-Xrunjdwp
选项,如中所述
更新:Eclipse是一个Java应用程序,因此应该可以添加
Eclipse.ini
中文章中提到的选项。但从未尝试过(我忽略了您想要调试Eclipse本身的事实)。调试Java应用程序基本上有两种方法(例如Eclipse)。您可以使用JConsole,但它不会提供很多细节。对于连接,必须启用远程调试;这需要一个JVM参数,您可以将它写入eclipse可执行文件旁边的eclipse.ini文件中
另一个选项是从Eclipse启动运行时工作台:这用于测试您自己的插件,但由于Eclipse插件是相同的,因此可以使用Eclipse应用程序启动调试会话。为此,您的工作区中至少需要一个插件(例如,创建一个新的hello world插件项目),然后您可以将其作为Eclipse应用程序进行调试。编辑Eclipse.ini文件,并将以下内容添加到底部(在-vmargs下面): 然后在同一版本的另一个Eclipse中,您可以导入对调试感兴趣的插件。文件->导入…->插件开发->插件和片段。从活动平台导入,并作为“带有源文件夹的项目”导入,在下一个选项卡上选择您感兴趣的插件 根据需要设置断点 然后在调试配置中创建,创建一个新的“远程Java应用程序”。本地主机,端口8000。在“源代码”选项卡上添加Java项目,然后进行调试。还有
其中一个解决方案建议使用
-consolelog
选项启动Eclipse。这可能有助于(在进行实际调试之前)快速了解正在发生的事情。本文介绍如何调试jar文件。但我发现eclipse是(看起来像?)一个本地可执行文件。我怎样才能告诉eclipse将调试消息发布到一个端口中呢?你说你在Ubuntu上,所以:1)查找进程id,可能使用ps auxw。2) 从shellkill-QUIT
Woot-Woot这就是我要找的东西
-Xdebug
-Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000