我想使用Rubymine的IDE调试器来调试在命令外壳中运行的ruby进程,例如它所产生的。通过“ rails console”。

当运行Web服务器(从Rubymine内)或测试套件(也从Rubymine内运行)时,我在调试器方面投入了很多精力。

但是,如果该进程不是由Rubymine启动的,那么我就迷茫了如何附加调试器。

我在具有Sun Java 1.6.0_26,Ruby REE 1.8.7和最新调试工具的Ubuntu上使用Rubymine 3.2.4版本: 通用标签

有想法吗?

有帮助吗?

解决方案

在RubyMine中使用 Ruby远程调试配置类型。有关详细信息,请参阅正式的 RubyMine文档

基本上,您可以像这样运行脚本: 通用标签

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

其他提示

这是您在Rails中执行的操作:

首先,请确保您已经安装了rdebug-ide 通用标签

下一步,在控制台中运行它: 通用标签

或适用于Rails 4.0 + 通用标签

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

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

  1. 在RubyMine中单击“运行”>“编辑配置”,然后添加“ Ruby远程调试”实例

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

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

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

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

我真的很想在这里发布一些很难在其中找到完整答案的东西,这花了我很长时间才能弄清楚。有人问如何将远程调试附加到resque worker,这是最终对我有效的正确方法。本文是google搜索的热门文章,很容易找到。

服务器上的FROM SHELL(对我来说,它是我的笔记本电脑)从您的站点根目录执行此操作: 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

在Resque worker中设置一个断点,并尝试执行您站点中需要执行的任何操作以使您到达该断点。

1个便笺-拥有“春季”宝石会给我带来错误,因此我必须将其注释/打包。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top