6

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

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

如果它是一个脚本,我将这些命令添加到它。通过这样做,命令行会显示以下消息:

Listening for transport dt_socket at address: 8000

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

谢谢!

4

3 回答 3

10

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

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

于 2012-07-25T09:43:25.850 回答
3

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

这个怎么运作:

  1. 要调试的应用程序将附加一个套接字到自身,然后将开始侦听调试指令。
  2. 调试器会将自己绑定到该套接字,然后发送指令。
于 2018-10-11T09:56:48.970 回答
0

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

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

  1. 我们在我们的服务器中使用 JBOSS。
  2. 配置-JBOSS_HOME/bin/run.conf JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

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

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

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

于 2014-11-15T10:55:46.860 回答