Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试EclipseIDE本身_Eclipse_Ubuntu - Fatal编程技术网

调试EclipseIDE本身

调试EclipseIDE本身,eclipse,ubuntu,Eclipse,Ubuntu,我很想学习如何调试EclipseIDE。 回到我使用VS进行.NET开发的时候,我可以随时将VS附加到进程并开始跟踪问题。我希望eclipse也会有类似的东西,但作为Java世界的新手,我不知道这一点 最近,当我将eclipse与iBUS(在Ubuntu 9.10上)一起运行时,它经常挂起。我希望我能找出真正挂起我的eclipse的原因并避免这种情况(想象一下你的eclipse挂起和打开的所有文件都被关闭了。这简直让我发疯)。任何Java应用程序现在都可以做的一件事就是向它发送一个kill-QU

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


最近,当我将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) 从shell
kill-QUIT
Woot-Woot这就是我要找的东西
-Xdebug
-Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000