我正在尝试为 Eclipse 插件项目启用远程调试,以便使用 IntelliJ IDEA 作为调试器。
到目前为止我已采取的步骤:
-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
添加到 VM 参数。我收到以下错误:
错误:无法两次加载此 JVM TI 代理,请检查您的 java 命令行是否有重复的 jdwp 选项。 VM初始化期间发生错误 代理库初始化失败:jdwp
我应该采取哪些步骤来让 IntelliJ IDEA 能够调试在运行时工作区中运行的 Eclipse 插件?
- 运行 -> 调试配置...
- 将 -Xdebug -Xrunjdwp:transport= dt_socket,address=1044,server=y,suspend=n 添加到 VM 参数。
这是多余的。使用 debug 配置已经启动应用程序,并将 eclipse 调试器附加到进程。如果您想通过服务器套接字启用调试,请将其作为运行配置启动。
然后,您可以创建一个附加的“远程 Java 应用程序”调试配置以附加到该套接字。
我建议您不要尝试从 Eclipse 内启动 Eclipse 应用程序。
Tomcat 配置:-> 默认情况下,远程调试发生在 8000 端口。如果您想更改此设置,请转到 catalina.bat 文件并更新此行 将 JPDA_ADDRESS=localhost:8000 设置为所需的端口号。 您也可以在 setenv.bat 文件中设置此属性。一般来说,tomcat 中不存在该文件,因此只需创建一个名为 的批处理文件 setenv 并写入此行 set JPDA_ADDRESS=localhost:8000.
现在转到 bin 目录,然后打开命令提示符并写入“catalina jpda start”。它将使 tomcat 以调试模式运行。你可以验证一下 通过看到类似这样的内容“监听地址为 8000 的传输 dt_socket”
1) 日食
转到运行->调试配置->远程Java应用程序->单击新的启动配置 然后填写详细信息,如项目、端口(提供与您在 tomcat 中配置的端口号相同的端口号)、主机(如果您使用本地,您可以提供 本地然后应用和调试 我正在使用 eclipse 2020.09 .
2)Intellij Idea:
转到添加配置->单击+->并选择远程jvm调试->然后给出相同的端口号和名称(任何名称)然后应用。
只需添加
-Xdebug -Xrunjdwp:transport= dt_socket,address=1044,server=y,suspend=n
至少基于 Eclipse 框架的 Java 应用程序确实会忽略这些参数。 你需要在前面添加
-vmargs
,例如:
-vmargs -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044
然后,当您通过控制台启动应用程序时,它应该打印:
Listening for transport dt_socket at address: 1044
然后您可以启动外部调试器,例如来自日食