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

Wol*_*old 10 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)
Run Code Online (Sandbox Code Playgroud)

思考?

Abd*_*bdo 6

这是你在Rails中的做法:

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

gem install ruby-debug-ide --platform=ruby
Run Code Online (Sandbox Code Playgroud)

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

rdebug-ide --port 6778 -- /projects/your_rails_project/script/rails console
Run Code Online (Sandbox Code Playgroud)

或者用于rails 4.0+

rdebug-ide --port 6778 -- /projects/your_rails_project/bin/rails console
Run Code Online (Sandbox Code Playgroud)

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

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

  1. 单击RubyMine中的Run> Edit Configurations,然后添加一个"Ruby Remote Debug"实例

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

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

  4. 单击"应用"并关闭.

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


Cra*_*der 5

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

基本上你运行脚本如:

rdebug-ide --port <port number> -- script.rb
Run Code Online (Sandbox Code Playgroud)

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