我想使用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)
思想?
答案 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
参数。 (请阅读下面的评论以获取警告)
这将等待远程调试客户端连接。
点击“运行”>在RubyMine中编辑配置,然后添加“Ruby Remote Debug”实例
使用与上述相同的端口6778(如果更改上面的端口,请确保端口匹配)
根文件夹和本地根文件夹相同,/ projects / your_rails_project
单击“应用”并关闭。
接下来,从运行和调试按钮旁边的列表中选择此配置,然后单击调试按钮。给它几秒钟,控制台将运行“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给了我错误,我不得不将它评论出来/捆绑。