我最近了解了Idea下的远程调试程序。我所做的是在Run |下复制远程调试的配置在Idea中调试配置到命令行java执行参数。实际的命令行参数是:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
如果是脚本,我会向它添加这些命令。通过这样做,命令行显示消息:
Listening for transport dt_socket at address: 8000
因此可以使用本地源代码进行调试。但是,我没有正确理解远程调试的工作原理。任何知道远程调试实际工作原理的人,请给我一个解释。
谢谢!
答案 0 :(得分:9)
远程调试意味着您可以在本地或远程计算机上的任何位置运行Java代码。当它在调试模式下运行时,您可以使用TCP网络连接从IDE连接到它并执行调试。 IDE需要拥有正在运行的类的源代码,以便您可以在此代码中放置断点并执行步进,检查变量等。
如果您对技术细节感兴趣,请参阅JPDA documentation。
答案 1 :(得分:2)
请考虑一种情况,您想修复应用程序中的某些内容,但由于其他依赖性,您的应用程序只能在服务器计算机上运行。 那就是远程调试出现的地方。您只需提供主机名和端口来连接服务器,然后将其与您各自的环境连接即可。
工作方式:
答案 2 :(得分:0)
这是测试不同环境中代码的最佳方法。
在使用远程调试之前,我们需要确保以下几点。
configure - JBOSS_HOME / bin / run.conf JAVA_OPTS =" $ {JAVA_OPTS} -Xdebug -Xnoagent -Xrunjdwp:transport = dt_socket,address = 8787,server = y,suspend = n"
现在将服务器IP和端口号添加到intellij远程调试中。 4.你的本地项目的最新版本应与服务器同步,否则将不允许进行调试。
另一点是,它将保留队列中的所有请求,并且不允许任何人通过断点,这可能会阻止其他用户对其进行测试。