如何将Rubymine IDE调试器附加到shell进程?

时间:2012-01-16 21:41:14

标签: ruby debugging irb rubymine rails-console

我想使用Rubymine的IDE调试器来调试在命令shell中运行的ruby进程,因为它已经生成,例如,通过“rails console”。

运行Web服务器(来自Rubymine)或测试套件(也来自Rubymine)时,我已经从调试器中获得了很大的利润。

但是,如果Rubymine没有启动该过程,我将无法安装调试器。

我在Ubuntu上使用的版本Rubymine 3.2.4与Sun Java 1.6.0_26,Ruby REE 1.8.7以及最新的调试宝石:

ruby-debug-base (0.10.4)
ruby-debug-ide (0.4.17.beta8)

思想?

3 个答案:

答案 0 :(得分:6)

这是你在Rails中的表现方式:

首先,确保您已安装rdebug-ide

gem install ruby-debug-ide --platform=ruby

接下来,在控制台中运行:

rdebug-ide --port 6778 -- /projects/your_rails_project/script/rails console

或者对于rails 4.0 +

rdebug-ide --port 6778 -- /projects/your_rails_project/bin/rails console

或者,正如@ChristopherWill所提到的below,如果您希望调试非本地服务器,则可以传递--host参数。 (请阅读下面的评论以获取警告)

这将等待远程调试客户端连接。

  1. 点击“运行”>在RubyMine中编辑配置,然后添加“Ruby Remote Debug”实例

  2. 使用与上述相同的端口6778(如果更改上面的端口,请确保端口匹配)

  3. 根文件夹和本地根文件夹相同,/ projects / your_rails_project

  4. 单击“应用”并关闭。

  5. 接下来,从运行和调试按钮旁边的列表中选择此配置,然后单击调试按钮。给它几秒钟,控制台将运行“rails console”,你在哪里运行“rdebug-ide”

答案 1 :(得分:5)

在RubyMine中使用 Ruby Remote Debug 配置类型。有关详细信息,请参阅官方RubyMine documentation

基本上你运行脚本如:

rdebug-ide --port <port number> -- script.rb

然后从RubyMine调试器连接到指定的端口。

答案 2 :(得分:3)

我真的想在这里发布一些很难找到完整答案的内容,我花了很长时间才弄明白。有人问如何将远程调试附加到resque worker,这是最终适合我的正确方法。这篇文章在谷歌搜索方面很有用,很容易找到。

服务器上的SHELL(对我来说是我的笔记本电脑)从您的站点root执行此操作: rdebug-ide --port 1236 --dispatcher-port 26166 --host 0.0.0.0 bin / rake resque:work QUEUE = *

在RubyMine IDE中

配置远程调试: 远程主机:127.0.0.1 远程端口:1236 远程根文件夹:服务器到站点根目录的路径 当地港口:26166 本地根路径:工作站上的路径到您将设置断点的根文件(在我的情况下,它是所有本地的,因此它的所有1路径和1个文件副本)

正常运行您的Web服务器:rails s

在您的Resque工作程序中设置断点,并尝试在您的站点中执行您需要的任何内容,以使您进入该断点。

1注意 - 拥有&#34;弹簧&#34; gem给了我错误,我不得不将它评论出来/捆绑。