如何让ruby-debug-ide工作?

时间:2015-09-17 20:00:25

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

我无法让我的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

然而,当我运行此命令时,我收到以下消息: enter image description here

我也尝试过上述命令的修改版本:(额外的破折号)

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

我得到了这个结果: enter image description here 这看起来很好,但服务器永远不会启动。它从不显示服务器信息,它只是在这里挂起,直到我CTRL + C退出服务器。我无法让rdebug-ide与rails配合使用。有谁知道我怎么解决这个问题?

4 个答案:

答案 0 :(得分:2)

我有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远程调试。

enter image description here

填写表单并单击“调试”按钮。服务器立即不再挂起,并启动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中设置断点,并启动远程调试: - )

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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