如何为 Eclipse 应用程序启用远程调试?
Posted
技术标签:
【中文标题】如何为 Eclipse 应用程序启用远程调试?【英文标题】:How to enable remote debugging for an Eclipse Application? 【发布时间】:2016-01-11 20:04:14 【问题描述】:我正在尝试为 Eclipse 插件项目启用远程调试,目的是使用 IntelliJ IDEA 作为调试器。
到目前为止我已经采取的步骤:
-
启动 Eclipse。
运行 -> 调试配置...
创建一个新的“Eclipse 应用程序”(用于启动加载插件的本地工作区)。
将
-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
添加到VM 参数。
按下调试按钮。
我收到以下错误:
错误:无法两次加载此 JVM TI 代理,请检查您的 java 命令行是否有重复的 jdwp 选项。 初始化虚拟机时出错 代理库无法初始化:jdwp
我应该采取哪些步骤让 IntelliJ IDEA 能够调试在运行时工作区中运行的 Eclipse 插件?
【问题讨论】:
你试过 -Xnoagent 吗? 不,要详细说明吗? 为什么要远程调试呢?如果您已经可以从 Eclipse 以调试模式启动。 @PeterKirschner 我在各个断点打印出代码。 IntelliJ 能够在断点处显示这些变量旁边的变量值。我也希望将这些值打印出来。我不相信这在 Eclipse 中是可能的。我想让远程调试能够做到这一点。 是什么让你认为远程调试会给你一些“本地”调试所没有的东西?最后,它是在工作的同一个调试器基础架构。 【参考方案1】:运行 -> 调试配置... 将 -Xdebug -Xrunjdwp:transport= dt_socket,address=1044,server=y,suspend=n 添加到 VM 参数中。
这是多余的。使用 debug 配置已启动应用程序,并将 eclipse 调试器附加到进程。如果您想通过服务器套接字启用调试,请将其作为运行配置启动。
然后您可以创建附加的“远程 Java 应用程序”调试配置以附加到该套接字。
【讨论】:
【参考方案2】:我建议您不要尝试从 Eclipse 中启动 Eclipse 应用程序。
将应用导出为独立的 Eclipse 应用。 修改 eclipse.ini 文件并将必要的调试参数添加到“-vmargs”条目中。 像往常一样启动独立应用程序。 将开发 Eclipse 实例附加到测试应用程序,就像您通常对远程调试所做的那样。【讨论】:
这不是我需要的;建议的解决方法不能回答我的问题。我需要它从 Eclipse 运行,以便能够即时更改代码。【参考方案3】:Tomcat 配置:-> 默认情况下,远程调试发生在 8000 端口。如果要更改此设置,请转到 catalina.bat 文件并更新此行 将 JPDA_ADDRESS=localhost:8000 设置为所需的端口号。 您还可以在 setenv.bat 文件中设置此属性。通常这个文件在tomcat中没有,所以只需创建一个带有名称的批处理文件 setenv 并写下这一行 set JPDA_ADDRESS=localhost:8000.
现在进入 bin 目录,然后打开命令提示符并写入“catalina jpda start”。它将使tomcat在调试模式下运行。你可以验证一下 通过看到类似“在地址监听传输 dt_socket:8000”
1)日食
转到运行->调试配置->远程Java应用程序->点击新的启动配置 然后填写项目,端口(提供与您在tomcat中配置的端口号相同的端口号),主机(如果您使用本地,您可以提供 本地然后应用和调试 我正在使用 eclipse 2020.09 。
Eclipse remote debug img
2)Intellij 理念:
转到添加配置->点击+->并选择远程jvm调试->然后给出相同的端口号和名称(任何名称)然后应用。
Intellij Idea Remote Debug img
【讨论】:
以上是关于如何为 Eclipse 应用程序启用远程调试?的主要内容,如果未能解决你的问题,请参考以下文章
如何在运行 java 应用程序的弹性 beanstalk 应用程序上启用 java 调试?
如何为 OSX Mountain Lion 上的应用程序设置环境变量?