我想学习如何调试eclipse IDE。
回到我使用VS进行.NET开发的时候,我可以随时将VS附加到进程上并开始跟踪问题。我希望在eclipse中也有类似的功能,但作为Java世界的新手,我不知道这方面的情况。
最近我在Ubuntu 9.10上运行eclipse和iBUS时经常出现卡顿。我希望能找出真正导致eclipse卡顿的原因,并避免这种情况(想象一下你的eclipse卡死了,每个打开的文件都关闭了,这简直让人发疯)。
编辑你的eclipse.ini文件,在底部添加以下内容(在-vmargs下面):
-Xdebug
-Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
在同一版本的另一个Eclipse中,您可以导入想要调试的插件。选择文件 -> 导入... -> 插件开发 -> 插件和片段。从活动平台导入,并选择“带源文件的项目”,在下一个选项卡中选择您感兴趣的插件。
根据需要设置断点。
然后在“调试配置”中创建新的“远程Java应用程序”。本地主机名为localhost,端口为8000。在源标签页上添加Java项目并进行调试。
这里有一个关于寻找Eclipse冻结原因的讨论线程。
其中一个解决方案建议使用-consolelog
选项启动Eclipse。这可能对快速了解发生了什么(在进行实际调试之前)很有用。
你可以对任何Java应用程序执行kill -QUIT
命令,以查看当前正在进行的操作。这将导致JVM将其所有线程的堆栈跟踪转储到stdout。在每次间隔一秒的情况下执行三次此操作,您就可以看到哪些线程没有正常运行。
另一个尝试的方法是连接JConsole到正在运行的进程。
调试Java应用程序(例如Eclipse)基本上有两种方法。您可以使用JConsole,但它不会提供很多细节。要附加JConsole,您必须启用远程调试;这需要一个JVM参数,您可以将其写入紧挨着Eclipse可执行文件的eclipse.ini文件中。
另一种选择是从Eclipse启动运行时工作台:这用于测试您自己的插件,但由于Eclipse插件相同,因此可以使用Eclipse应用程序启动调试会话。要做到这一点,您需要在工作区中至少有一个插件(例如创建一个新的hello world插件项目),然后您可以将其作为Eclipse应用程序进行调试。