使用Intellij Idea进行远程调试

时间:2012-07-25 09:32:35

标签: java intellij-idea remote-debugging

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

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

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

Listening for transport dt_socket at address: 8000

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

谢谢!

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:2)

请考虑一种情况,您想修复应用程序中的某些内容,但由于其他依赖性,您的应用程序只能在服务器计算机上运行。 那就是远程调试出现的地方。您只需提供主机名和端口来连接服务器,然后将其与您各自的环境连接即可。

工作方式:

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

答案 2 :(得分:0)

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

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

  1. 我们在服务器中使用JBOSS。
  2. configure - 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. 在本地放置一个调试点,当我们在服务器上开始测试时,当它到达调试点时,它将停止并等待,直到你处理它。
  7. 另一点是,它将保留队列中的所有请求,并且不允许任何人通过断点,这可能会阻止其他用户对其进行测试。