无法加载此类文件 - script/rails:通过RubyMine进行远程调试时出现此错误

Ami*_*tel 5 ruby debugging rubymine ruby-on-rails-3

我通过RubyMine IDE进行远程调试时遇到以下错误.

$ bundle exec rdebug-ide --port 1234 -- script/rails server
Fast Debugger (ruby-debug-ide 0.4.9) listens on :1234
    /home/amit/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-ide19-0.4.12/lib/ruby-debug-ide.rb:123:in `debug_load'
    /home/amit/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-ide19-0.4.12/lib/ruby-debug-ide.rb:123:in `debug_program'
    /home/amit/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-ide19-0.4.12/bin/rdebug-ide:87:in `<top (required)>'
    /home/amit/.rvm/gems/ruby-1.9.3-p125/bin/rdebug-ide:19:in `load'
    /home/amit/.rvm/gems/ruby-1.9.3-p125/bin/rdebug-ide:19:in `<main>'
Uncaught exception: cannot load such file -- script/rails
Run Code Online (Sandbox Code Playgroud)

我按照此链接安装了需要的gems进行远程调试.

这是用于远程调试的Gemfile配置

#To Debug
  gem 'linecache19', '0.5.13', :path => "~/.rvm/gems/ruby-1.9.3-p125/gems/linecache19-0.5.13/"
  gem 'ruby-debug-base19', '0.11.26', :path => "~/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.26/"
  gem 'ruby-debug19', :require => 'ruby-debug'
  gem 'ruby-debug-ide19'
Run Code Online (Sandbox Code Playgroud)

该应用程序使用Ruby 1.9.3Rails 3.0.11运行.

Cra*_*der 18

您正在使用一些奇怪的调试宝石,只需要以下内容:

  • ruby-debug-base19x
  • ruby-debug-ide

首先,删除所有ruby-debug*gem,然后使用以下命令安装所需的gem:

gem install ruby-debug-base19x --pre
gem install ruby-debug-ide --pre
Run Code Online (Sandbox Code Playgroud)

您应该获得以下(或更新)版本:

ruby-debug-base19x (0.11.30.pre10)
ruby-debug-ide (0.4.17.beta9)
Run Code Online (Sandbox Code Playgroud)

调整你的Gemfile只包括这两个宝石(特定于应用程序的宝石除外).

如果您收到linecache19相关错误,请按如下方式安装:

curl -OL http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
gem install linecache19-0.5.13.gem
Run Code Online (Sandbox Code Playgroud)

@Anjan为调试贡献了完整的Gemfile更改:

gem 'linecache19', '>= 0.5.13', :git => 'https://github.com/robmathews/linecache19-0.5.13.git'
gem 'ruby-debug-base19x', '>= 0.11.30.pre10'
gem 'ruby-debug-ide', '>= 0.4.17.beta14'
Run Code Online (Sandbox Code Playgroud)

不要忘记更新捆绑包.