教程:远程调试
在本教程中,我们将学习如何使用 IntelliJ IDEA 调试器附加到本地或远程进程。
创建项目
首先,让我们设置要调试的项目——一个简单的程序,它输出从 A 到 Z 的大写字母。
创建一个名为
Alphabet的类。
在
Alphabet类的主体中,粘贴以下main方法的定义:public static void main(String[] args) { System.out.println("Starting"); for (char c = 'A'; c < 'Z'; c++) { try { Thread.sleep(2500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(c); } System.out.println("Complete"); }
创建运行配置
为了允许调试器附加,我们需要使用特殊参数运行应用程序(稍后会详细介绍)。 在本教程中,我们将设置一个运行/调试配置来为我们执行此操作。 这样,我们将有两个运行/调试配置: 一个用于运行应用程序, 另一个用于附加到它。
设置调试器
首先,我们需要设置运行/调试配置,以便附加到主机应用程序。
在主菜单中,转到 或按 Alt+Shift+F10 然后 0。
在 运行/调试配置 对话框中,点击 添加新配置 按钮
并选择 远程 JVM 调试。

配置/使用以下属性:
名称 :为此运行/调试配置定义一个方便的名称或保留默认值。
主持人 :主机应用程序将运行的机器地址。 由于我们在同一台机器上运行它,因此它需要是 localhost 。 如果该程序在其他机器上运行,您可以在此处指定其地址,例如: 192.168.17.43 。
远程 JVM 的命令行参数 :启动主机应用程序所需的 VM 选项。 我们将在其他运行/调试配置中使用它们。 您可以现在复制它们,或者稍后再回到这个字段。

点击 应用。
设置主机应用程序
主应用程序的运行方式没有任何限制。 例如,您可以 将应用程序打包为 JAR ,并使用以下命令行运行它:
在本教程中,我们将使用一个 run/debug 配置,它将为我们完成大部分工作。
右键点击
Alphabet类主体的任意位置。 选择 更多运行/调试 ,然后 修改运行配置。点击 修改选项 ,然后选择 添加虚拟机选项(V)。 请在 虚拟机选项 字段中粘贴您从 调试配置 中复制的选项。

点击 应用。
运行应用程序
现在我们已经准备好所有必要的东西,可以继续运行我们的应用程序。
按 Alt+Shift+F10 并选择
Alphabet。
在程序输出中,第一行将是:
这表示我们已启用了调试代理程序并且我们的程序已经准备好接受传入的调试器连接。
如果该行未出现,请确保端口未被其他应用程序使用或未被防火墙或安全设置阻止。
附加到进程
点击第 10 行的边距以在此处设置行断点。

按 Alt+Shift+F9 并选择您的远程调试配置。

结果是,程序在断点处暂停,您可以执行任何调试操作,如 单步执行、 表达式求值等。

不管应用程序如何及在哪里启动,调试过程都是相同的。 连接后,您可以使用与直接从 IntelliJ IDEA 启动应用程序时相同的调试功能。
关闭调试会话
关闭 调试 工具窗口中对应的会话选项卡。

选择是否终止该进程或与其断开连接。
断开连接 停止调试会话,而进程继续运行
终止 同时停止进程和调试会话
