我想使用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,以及最新的调试gem:
ruby-debug-base (0.10.4)
ruby-debug-ide (0.4.17.beta8)有什么想法?
发布于 2012-01-17 06:01:47
在RubyMine中使用Ruby远程调试配置类型。具体请参考官方RubyMine documentation。
基本上,您可以像这样运行该脚本:
rdebug-ide --port <port number> -- script.rb然后从RubyMine调试器连接到指定的端口。
发布于 2012-06-12 04:05:21
这就是你在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参数。(请阅读他下面的评论以获得警告)
这将等待远程调试客户端连接。
close。
接下来,从run和debug按钮旁边的列表中选择此配置,然后单击debug按钮。给它几秒钟,控制台将在您运行"rdebug-ide“的地方运行"rails console”。
发布于 2015-10-31 11:22:41
我真的很想在这里发布一些很难找到完整答案的东西,我花了很长时间才弄明白。有人问如何将远程调试附加到resque worker,这里是最终对我有效的正确方法。这篇文章在谷歌搜索上排名很高,很容易找到。
在服务器(我的笔记本电脑)上的SHELL中,从站点根目录执行以下命令: rdebug-ide --port1236 --dispatcher-port 26166 --HOST0.0.0.0bin/rake resque:work QUEUE=*
在RubyMine集成开发环境中,使用以下命令配置远程调试:远程主机: 127.0.0.1远程端口: 1236远程根文件夹:服务器上到站点根目录的路径本地端口: 26166本地根目录路径:您在工作站上设置断点的根文件的路径(在我的例子中,它都是本地的,所以它都是1个路径和文件的一个副本)
像往常一样运行您的web服务器: rails s
在你的Resque worker中设置一个断点,并尝试在你的站点中执行任何你需要的东西来让你到达那个断点。
1注意-拥有"spring“gem给了我错误,我不得不注释掉它/bundle。
https://stackoverflow.com/questions/8886660
复制相似问题