调试Eclipse插件

时间:2012-11-10 18:13:21

标签: eclipse debugging eclipse-plugin

这是我第一次尝试创建Eclipse插件。我创建了一个,以及功能和更新站点。我将目标平台设置为我的本地Eclipse安装。当我从开发环境中运行/调试插件时,一切正常。

现在,我的同事从我托管的更新站点安装了插件。当他开始使用我的插件公开的任何功能时,他会获得运行时异常。

  1. 他看到了从我的开发环境运行插件项目时没有出现的空指针异常。
  2. 我有一个属于我的插件的向导。当他关闭它时,他得到“未处理的事件循环异常”,并且向导不会关闭。当我在开发环境中运行/调试我的插件时,我没有遇到这个问题。
  3. 现在我很困惑为什么相同的插件在生产环境中表现不同,与开发环境相反,以及我从IDE调试时。两种情况下的目标平台都是相同的Eclipse版本。可能是什么原因?

    如何在生产环境中调试插件?是否有远程调试功能来调试生产环境中的插件? 任何建议都非常有用!

4 个答案:

答案 0 :(得分:18)

要远程调试插件,首先将调试参数添加到目标Eclipse .ini文件

-vmargs
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
发布之前

然后使用包含插件项目的工作区打开另一个Eclipse实例。 打开运行> 调试配置... ,选择远程Java应用程序并创建新配置。

作为 Project ,浏览并选择您的插件项目。 同时填写连接属性(目标Eclipse的主机端口 1044)。

启动新创建的调试配置允许您以与本地调试相同的方式调试插件。

答案 1 :(得分:2)

  

现在我很困惑为什么相同的插件在行为方面有所不同   生产环境,对开发环境和我的时候   从我的IDE调试它。两种情况下的目标平台都是   相同的eclipse版本。可能是什么原因?

这是一个经典之作:Eclipse插件和RCP应用程序确实在PDT(Eclipse IDE)和导出的产品之间表现不同。

在您的情况下,从导出的版本而不是从Eclipse抛出的NullPointerException是10个图像或其他资源文件(属性等)中的9倍,这些文件由代码加载但未在构建中列出。插件的属性。

无论如何,您需要检查日志以检索堆栈跟踪并查找其原因。这些日志可以在朋友的工作区中找到le .metadata/.log file

答案 2 :(得分:0)

从现在的开发工作区,使用“Debug As - > Eclipse Application”菜单项启动测试工作区。启动时,您将运行两个工作区:原始开发工作区和新测试工作区。您可以在开发工作区的插件代码中设置断点,并在测试工作区中运行插件。

当您在测试工作区中的插件执行到达其中一个断点时,执行将暂停,您可以使用开发工作区中的Debug视图来查看变量,设置更多断点或其他任何您想要执行的操作来删除插入。

答案 3 :(得分:0)

请参阅Apache Wiki for Developing with Eclipse

在Windows 10下,Tomcat作为Windows服务运行,我开始了:

tomcat8.5\bin\Tomcat8w.exe

&安培;在 Java 标签中添加 Java选项中的第一个条目以启用远程调试:

-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n