【问题标题】:How can I get ruby-debug-ide to work?如何让 ruby​​-debug-ide 工作?
【发布时间】:2015-09-17 20:00:24
【问题描述】:

我的 ruby​​-debug-ide 无法正常工作。我有一个基本的 Rails 应用程序,我想在 RubyMine 中进行调试。在我启动 RubyMine 之前,我需要在我的 vagrant VM 中启用 rdebug-ide。当我导航到我的项目目录时,我已经在线阅读我需要输入以下命令:

rdebug-ide --port 1236 --dispatcher-port 26166 --host 0.0.0.0 - bin/rails s -b 0.0.0.0

但是,当我运行此命令时,我收到以下消息:

我还尝试了上述命令的修改版本:(一个额外的破折号)

rdebug-ide --port 1236 --dispatcher-port 26166 --host 0.0.0.0 -- bin/rails s -b 0.0.0.0

我得到了这个结果: 起初这看起来不错,但随后服务器永远不会启动。它从不显示服务器信息,它只是坐在这里并挂起,直到我 CTRL+C 退出服务器。我无法让 rdebug-ide 与 rails 一起工作。有谁知道我该如何解决这个问题?

【问题讨论】:

  • 您是否使用 vagrant 配置中的固定 IP?如果不确定转发您正在使用的端口(1236),以便主机可以侦听此端口

标签: ruby ruby-on-rails-4 vagrant ruby-debug ruby-debug-ide


【解决方案1】:

我已经可以进行 RubyMine 远程调试了 :-)

在开始之前,请确保您已安装 debase 和 rdebug-ide:

gem list | grep debase    
gem list | grep ruby-debug-ide

sudo gem install debase
sudo gem install ruby-debug-ide

1。启动 Rails 服务器

首先,你需要启动 Rails 服务器:

hello_rails$ rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails server
Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.2.beta10, file filtering is supported) listens on 0.0.0.0:1234

供您参考,我的 Ruby、Rails 和 Ubuntu 版本是:

$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux-gnu]

$ rails -v
Rails 5.1.4

$ lsb_release -a
Description:    Ubuntu 16.04.3 LTS
Codename:       xenial

如您所见,服务器似乎永远不会启动。它只是挂在那里。这实际上是正确的。它挂在那里,等待连接,例如来自 RubyMine。

2。从 RubyMine 远程调试

现在启动 RubyMine(我使用的是 RubyMine 2017.2.4),运行 -> 调试... -> 编辑配置...

单击加号“+”添加新配置,并选择 Ruby 远程调试。

填写表格并单击“调试”按钮。服务器立即不再挂起,Rails 服务器启动:

hello_rails$ rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails server
Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.2.beta10, file filtering is supported) listens on 0.0.0.0:1234
WARN: Unresolved specs during Gem::Specification.reset:
      rake (>= 0.8.1)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
=> Booting Puma
=> Rails 5.1.4 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.10.0 (ruby 2.4.2-p198), codename: Russell's Teapot
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000

最后,您可以在 RubyMine 中设置断点,并开始远程调试 :-)

【讨论】:

  • 我已经找了好几个小时了。我还没有让它工作,但我现在走在正确的轨道上。 Ubuntu 16.x / Aptana Studio
  • 感谢您,您帮助我隔离了 RubyMine 中一个长期存在的错误,即一次只能调试一个 Docker 容器(问题是我们只能覆盖默认端口 1234:1234 和 26166 :26168 在“Ruby 远程调试”自定义配置下,但不在“Rails”自定义配置下。)。见:intellij-support.jetbrains.com/hc/en-us/community/posts/…
  • 我试图让它在 linux WSL 2 子系统上工作。它当前挂在 IDE 中。因此,当您自己运行 rdebug-ide bin/start etc 命令时,我试图在没有 IDE 的情况下运行它。应用程序应该启动吗?即你能做一个基本的curl http://localhost:3000
【解决方案2】:

在更新版本的 ruby​​-debug-ide 中,您可以在运行时 --skip_wait_for_start 并且它会立即启动 rails 服务器(参见https://github.com/ruby-debug/ruby-debug-ide/pull/167/files

【讨论】:

    【解决方案3】:

    我认为您应该将该命令添加到 RubyMine 内的 Ruby 远程调试配置中。

    Run > Edit Configurations > Add Ruby remote debug 配置。

    【讨论】:

      【解决方案4】:

      在我的情况下,我必须将 -- bin/rails 替换为相对路径:-- ../../../../../usr/local/bin/rails,因为一旦我按下 CTRL+c,我看到消息指出 /usr/src/app/bin/rails 未找到。

      【讨论】:

        猜你喜欢
        • 2011-02-28
        • 1970-01-01
        • 1970-01-01
        • 2022-12-11
        • 1970-01-01
        • 2016-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多