使用 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调试]