RubyMine 2025.2 Help

教程:使用“Ruby remote debug”调试应用程序

RubyMine 为您提供了两种调试运行在远程机器上的应用程序的方法:

指定的方法可能不适合调试某些项目,例如 SketchUp。 在这种情况下,您可以使用 Ruby 远程调试 运行/调试配置。

在本教程中,我们将向您展示如何使用 Ruby 远程调试 调试一个 示例 Rails 应用程序

先决条件

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

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

  • 远程机器 :启用了 SSH 访问并安装了 Ruby 解释器 安装 Ruby 的 Ubuntu 机器。

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

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

创建“Ruby remote debug”配置

首先,让我们在 RubyMine 中创建并设置 Ruby 远程调试 配置:

  1. 在主菜单中转到 运行 | 编辑配置 ,单击 "添加"图标 ,并从列表中选择 Ruby 远程调试

  2. 指定以下设置:

    Ruby 远程调试
    • 名称 :输入运行/调试配置名称。

      示例: Remote debug: sample_rails_app

    • 远程主机 :指定远程机器的主机名或 IP 地址。

      示例: sample-web-server 172.30.163.90

    • 远程端口 :指定用于在 IDE 和调试器之间建立连接的远程端口。

      示例: 1234

    • 远程根文件夹 :指定远程机器上要调试的应用程序所在的根文件夹。

      示例: /home/jetbrains/apps/sample_rails_app

    • 本地端口 :指定用于在 IDE 和调试器之间建立连接的本地端口。

      示例: 26162

    • 本地根文件夹 :指定本地机器上应用程序的根文件夹。

      示例: /Users/jetbrains/RubymineProjects/sample_rails_app

  3. 在您指定了所有设置后,将 服务器命令 字段中生成的命令复制到剪贴板。

    rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- $COMMAND$

    稍后它将用于在远程机器上 启动调试器。 $COMMAND$ 部分将被替换为运行应用程序的实际命令。

    点击 确定运行/调试配置 对话框。

配置远程解释器

在本部分中,我们将 使用 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

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

在远程机器上开始调试

在这一部分,我们将在远程机器上安装调试 gems 并启动调试会话。

  1. (可选)RubyMine 允许您使用 Spring 调试 Rails 应用程序。 这可能需要更新系统或项目的 Spring 配置文件,以便将调试器加载到 Spring 分叉 的每个进程中。 为此,将以下代码添加到 ~/.spring.rb config/spring.rb 文件中:

    Spring.after_fork do if ENV['DEBUGGER_STORED_RUBYLIB'] ENV['DEBUGGER_STORED_RUBYLIB'].split(File::PATH_SEPARATOR).each do |path| next unless path =~ /ruby-debug-ide/ load path + '/ruby-debug-ide/multiprocess/starter.rb' end end end
  2. 将调试 gems 安装到目标 Ruby 解释器。 为此,将 debaseruby-debug-ide 添加到 Gemfile 并运行 bundle install

    gem 'debase' gem 'ruby-debug-ide'
  3. 转到应用程序的文件夹,并使用以下命令附加调试器运行它。

    rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails s

在本地机器上开始调试

现在我们准备好在 IDE 中开始调试了。

  1. 在您的应用程序中设置 断点

  2. 运行调试会话。 为此,请按两次 Ctrl ,并在弹出窗口中输入配置名称(Remote debug: sample_rails_app)。 按住 Shift 键(对话框标题更改为 Debug ),然后按 Enter

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