首页 > 解决方案 > Rubymine:使用已安装的 Puma-dev 进行调试?

问题描述

是否可以让 Rubymine 连接到(并重新启动)已安装/正在运行的 Puma-dev 实例以进行调试会话?

我使用 Puma-dev 在“Appname”.test 上测试我的 Rails 应用程序,但是如果我需要在应用程序中调试某些内容并想使用 Rubymine 的内置调试器,我只能让它在端口上启动一个额外的 Puma 实例3000(或我选择的任何端口)但不是已经在端口 80/443 上运行的 Puma-dev。

有可能吗?

标签: ruby-on-railsrubydebuggingrubyminepuma

解决方案


这可以通过远程调试来实现。要进行配置,您必须对您的应用程序进行一些更改:

  1. 添加export RUBY_DEBUG_PORT=1234.env.powenv或任何文件 puma-dev将从. 随意使用你喜欢的任何端口,尽管 RubyMine 默认使用 1234。

  2. ruby-debug-idedebasegems 添加到项目的 Gemfile 中。

  3. 将初始化程序添加到您的项目以初始化远程调试,如下所示:

    if Rails.env.development? && ENV['RUBY_DEBUG_PORT']
      Debugger.start_server nil, ENV['RUBY_DEBUG_PORT'].to_i
    end
    
  4. 重启 puma-dev。
  5. 转到 RubyMine 中的编辑配置并添加“Ruby 远程调试”配置。随意命名。将端口更改为您通过设置的端口RUBY_DEBUG_PORT。将本地和远程根文件夹设置为项目根目录。
  6. 选择您新创建的配置,然后单击“调试”按钮。它应该连接到在您的 puma-dev 进程中运行的调试器。

推荐阅读