RubyMine 2025.2 Help

教程:附加到远程进程

RubyMine 使您能够附加到本地或远程计算机上的正在运行的进程。 此功能允许您调试无法直接从 IDE 启动的应用程序。

在本主题中,我们将使用此功能调试运行在远程机器上的 示例 Rails 应用程序

先决条件

在本教程中,我们将使用两台机器来演示远程应用程序的调试:

  • 本地机器 :运行 macOS 的 Mac,已安装 RubyMine 安装 RubyMine

  • 远程机器 :启用了 SSH 访问并安装了 Ruby 解释器 安装 Ruby 的 Ubuntu 机器。 请注意,远程机器上还应安装 GDB

    在我们的教程中,远程计算机的名称为 sample-web-server

在两台机器上,我们将使用 jetbrains用户的主目录来存储源代码。

克隆并运行远程应用程序

首先,我们需要在远程机器上克隆并运行 示例应用程序。 为此, 连接到远程机器并使用 入门章节中的说明。 完成所需步骤后,使用 rails server 命令运行应用程序:

远程会话

在本地机器上克隆项目

在远程机器上运行示例应用程序后,启动 RubyMine 并使用以下说明在本地机器上打开相同的应用程序: 从远程主机检出项目(git clone)。 在 URL 中,插入以下地址: https://github.com/JetBrains/sample_rails_app.git 。 然后点击 克隆

从版本控制对话框获取

配置远程解释器

在本部分中,我们将 使用 SSH配置远程解释器。

  1. 打开 设置 对话框 Ctrl+Alt+S ,转到 语言与框架 | Ruby 解释器 页面,单击 Add 按钮并从列表中选择 远程解释器或版本管理器

    新建远程
  2. 在弹出的对话框中,选择 SSH 凭据 并按以下方式指定参数:

    配置远程 Ruby 解释器
    • SSH 配置 :单击省略号按钮以创建用于连接到远程机器的 SSH 配置

    • Ruby 或版本管理器路径 :在此处指定 Ruby 解释器或 版本管理器可执行文件的路径。 在本教程中,我们在远程机器上使用 rbenv。

    在指定所有设置后,单击 确定

  3. 如果您在之前的对话框中指定了版本管理器可执行文件的路径,RubyMine 会建议选择所需的 Ruby 解释器。 在此步骤中,您需要选择用于运行远程应用程序的解释器。

    选择分发版本

    单击 确定 并在 Ruby SDK 和 Gems 页面中选择添加的解释器。

    Ruby 解释器
  4. 最后,您需要指定本地和远程项目文件之间的映射。 为此,请单击 编辑路径映射 编辑路径映射 按钮。 在 编辑项目路径映射 对话框中,指定本地和远程项目根路径。

    编辑项目路径映射

    在我们的案例中,路径将如下所示:

    • 本地路径 /Users/jetbrains/RubymineProjects/sample_rails_app

    • 远程路径 /home/deploy/sample_rails_app

    在此对话框中单击 确定 ,然后在 设置 对话框中单击 确定。 现在我们已准备好附加到远程进程并调试应用程序。

附加到远程进程

现在我们已准备好调试远程应用程序。

  1. 打开 users_controller.rb 文件,并在 创建 方法中设置断点,位于创建新用户的行旁边。

    设置断点
  2. 在主菜单中单击 运行 并选择 附加到进程… 命令。

  3. 在弹出的对话框中,在 SSH 组中选择远程连接(在我们的案例中为 sample-web-server@22 ),并选择 puma进程:

    附加到远程进程

    Console 选项卡将显示调试器输出:

    调试控制台

调试应用程序

要调试应用程序,请在本地机器上打开浏览器并指定应用程序地址。 在我们的示例中,它将是 http://sample-web-server:3000

注册页面

请点击 立即注册! 按钮。 在 注册 页面上,输入所需的用户参数并单击 创建我的帐户

用户凭据

调试器会在断点处 暂停会话,并使您能够 检查远程应用程序的状态。

调试远程应用程序

例如,您可以检查在 注册 页面上指定的用户参数。

故障排查

如果您在尝试附加到进程时遇到任何问题,请尝试以下解决方案:

  • 确保远程应用程序使用与调试项目 配置的 Ruby 解释器相同的版本运行。

  • 尝试增加调试连接超时时间。 为此,打开 设置 对话框 Ctrl+Alt+S ,转到 生成、执行、部署 | 调试器 页面,并使用 调试连接超时 选项。

最后修改日期: 2025年 9月 26日