使用 Intellij Idea 进行远程调试

Posted

技术标签:

【中文标题】使用 Intellij Idea 进行远程调试【英文标题】:Remote Debugging with Intellij Idea 【发布时间】:2012-07-23 17:01:39 【问题描述】:

最近才知道Idea下的远程调试程序。我所做的是在 Run | 下复制远程调试的配置在idea中调试配置到命令行java执行参数。实际的命令行参数是:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

如果是脚本,我会在其中添加这些命令。通过这样做,命令行会显示消息:

Listening for transport dt_socket at address: 8000

因此可以使用本地源代码进行调试。但是,我没有正确理解远程调试的工作原理。谁知道远程调试实际上是如何工作的,请给我一个解释。

谢谢!

【问题讨论】:

Java remote debugging, how does it work technically? 的可能重复项 【参考方案1】:

远程调试意味着您可以在任何地方运行您的 Java 代码,无论是在本地机器上还是在远程机器上。当它在调试模式下运行时,您可以使用 TCP 网络连接从 IDE 连接到它并执行调试。 IDE 需要有运行类的源代码,以便您可以在此代码中放置断点并执行单步执行、检查变量等。

如果您对技术细节感兴趣,请参阅JPDA documentation。

【讨论】:

【参考方案2】:

考虑一个场景,您想修复应用程序中的某些问题,但由于其他依赖项,您的应用程序只能在服务器计算机上运行。 这就是远程调试出现的地方。您只需通过提供主机名和端口来连接服务器,并将其与您各自的环境连接。

工作原理:

    要调试的应用程序会为其自身附加一个套接字,然后开始侦听调试指令。 调试器会将自己绑定到该套接字,然后发送指令。

【讨论】:

【参考方案3】:

这是测试您在不同环境中的代码的最佳方式。

在您使用远程调试之前,我们需要确定以下几点。

    我们正在我们的服务器中使用 JBOSS。

    配置 - JBOSS_HOME/bin/run.conf JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

    现在将服务器 IP 和端口号添加到 intellij 远程调试中。 4.你应该在本地拥有与服务器同步的最新版本的项目,否则将不允许调试。

    您需要为项目启动 intellij 服务器。 然后开始远程调试。 在本地放置一个调试点,当我们在服务器中开始测试时,当它到达调试点时,它将停止并等待直到您处理它。

另外一点是,它将所有请求都保存在队列中,并且不允许任何人通过可能会阻止其他用户测试它的断点。

【讨论】:

以上是关于使用 Intellij Idea 进行远程调试的主要内容,如果未能解决你的问题,请参考以下文章

图文并茂教你学会使用 IntelliJ IDEA 进行远程调试

[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]

[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]

Idea IntelliJ远程调试教程

Idea Intellij 远程开发调试

IntelliJ IDEA 在远程机器或者 Docker 上面运行和调试你的程序