Невозможно отладить в RubyMine 4.5 с использованием Ruby 1.9.3

Приношу свои извинения за длину вопроса, но я хочу прояснить, что я не делаю глупых ошибок!

Итак, я изо всех сил пытаюсь заставить работать отладку в RubyMine 4.5 с использованием Ruby 1.9.3, мои шаги следующие:

Свежая (т.е. удалив все предыдущие каталоги ruby ​​и gem) установка Ruby 1.9.3, Ruby Gems, DevKit и Rails (следуя этому руководству) - это работает отлично.

Затем я пытаюсь начать работать с рубиновым кодом моей команды. Я открываю каталог в RubyMine (вспоминая сначала, чтобы удалить .idea каталог) и мне предлагают запустить bundle install который я делаю (с консоли), как и просил. Это успешно завершено. Перезапустите RubyMine.

Затем я проверяю, работает ли Ruby: Инструменты> Консоль IRB> puts "test"#test => nil - работает я сейчас попробую отладчик (SHIFT + F9) и увидите сообщение:

The gem ruby-debug-base19x required by the debugger is currently not installed. Would you like to install it?"

Я нажимаю "Отмена" и проверяю свой Gemfile, только те, что связаны с отладкой настоящего:

# Debugging
gem 'debugger'
#gem 'ruby-debug-base19', :require => false
#gem 'ruby-debug19', :require => false
gem 'ruby-prof', :require => false #, :git => 'git://github.com/wycats/ruby-prof.git'

Похоже, у нас есть отладчик в пользу ruby-debug, Читая здесь, однако, кажется debugger недостаточно Мне нужно установить ruby-debug-base19x, Итак, следуя ТАК, я закомментирую отладчик из Gemfile и запускаю

gem install ruby-debug-base19x --pre
gem install ruby-debug-ide --pre

Который работает нормально, поэтому я добавляю

gem 'ruby-debug-base19x', '0.11.30.pre10'
gem 'ruby-debug-ide', '0.4.17.beta14'

в мой Gemfile, и запустить bundle install с консоли.

Наконец, я открываю отладчик внутри RubyMine (SHIFT + F9). А также puts "test" #test => nil снова работает Поэтому я пытаюсь дважды щелкнуть в канавке моего скрипта, чтобы создать точку останова, RubyMine делает паузу на секунду, а затем я получаю:

D:\Ruby\Ruby193\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/bin/rdebug-ide --dispatcher-port 55451 --port 55452 -- S:/code/account_groups/script/rails console
Fast Debugger (ruby-debug-ide 0.4.17.beta14, ruby-debug-base 0.11.30.pre10) listens on 127.0.0.1:55452
D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby_debug.so: warning: already initialized constant VERSION
5992: Exception in DebugThread loop: undefined method `errmsg' for #<Debugger::ControlState:0x2a2f3e8>
Backtrace:
D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby-debug/command.rb:160:in `errmsg'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby-debug/commands/breakpoints.rb:81:in `execute'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:89:in `block in process_commands'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:86:in `catch'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:86:in `process_commands'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide.rb:160:in `block in start_control'

Process finished with exit code 0

Я также попытался использовать резервную копию кода и, следуя тем же шагам, я также получаю следующую ошибку при попытке загрузить отладчик:

Uncaught exception: cannot load such file -- ruby-debug
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    S:/code/account_groups_so/lib/systematic-online/r_spec_runner.rb:5:in `<top (required)>'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    S:/code/account_groups_so/config/environment.rb:12:in `block in <top (required)>'
    S:/code/account_groups_so/config/environment.rb:12:in `each'
    S:/code/account_groups_so/config/environment.rb:12:in `<top (required)>'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/application.rb:103:in `require_environment!'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands.rb:40:in `<top (required)>'
    S:/code/account_groups_so/script/rails:6:in `require'
    S:/code/account_groups_so/script/rails:6:in `<top (required)>'

В скрипте нет ничего плохого (раньше я его использовал), и трассировка, похоже, связана с ruby-debug-ide - в чем дело?

Спасибо за любую помощь - это сводит меня с ума!

6 ответов

Решение

ОБНОВЛЕНИЕ: RubyMine 6+ поддерживает гем отладчика.

Не забудьте удалить gem 'debugger' от твоего GemfileЭто известный конфликт, который прервет отладку в RubyMine. Вам нужно всего лишь 2 драгоценных камня, связанных с отладчиком, именно так, как указано в моем другом ответе, связанном с вашим вопросом.

После удаления драгоценного камня вы должны убедиться, что на него нет ссылок нигде в проекте. В этом конкретном случае r_spec_runner.rb имел require 'ruby-debug' заявление, вызывающее cannot load such file -- ruby-debug ошибка при попытке запуска rails console,

Чтобы избежать этой проблемы, у меня есть эта строка в моем Gemfile:
gem 'debugger' unless ENV["RM_INFO"]

Просто для документирования решения от jetbrains: используйте либо:

gem 'debugger', {group: [:test, :development]}.merge(ENV['RM_INFO'] ? {require: false} : {})

Или же:

gem 'pry-debug', {group: [:test, :development]}.merge(ENV['RM_INFO'] ? {require: false} : {})

Это гарантирует, что Gemfile.lock останется неизменным, поэтому группа со смешанными RubyMine и vi/sublime/what может работать успешно, не требуя gem в среде RubyMine.

У меня была та же проблема, и мне понадобилось несколько часов, чтобы заставить ее работать. Вот что наконец-то привело к работе отладчика (это использует RVM):

  • Выйти из RubyMine
  • Если установлен Ruby 1.9.3, удалите его: rvm remove 1.9.3
  • Установите Ruby 1.9.3 под RVM: rvm install 1.9.3 --with-gcc=clang - это выдает ошибку "неподдерживаемая опция '--with-libyaml'", но я не видел никаких побочных эффектов от этого
  • Переключиться на новый рубин: rvm use 1.9.3
  • Перечислите и удалите все гемы ruby-debug*: gem list | grep debug - gem uninstall <found gems>
  • Загрузите linecache19 с http://rubyforge.org/frs/?group_id=8883 и установите гем, т.е. gem install linecache19-0.5.13.gem
  • Запустите RubyMine и запустите отладчик; он сообщит об отсутствующих гемах отладки (т.е. ruby-debug-ide); пусть RubyMine установит их.

Вот когда отладчик начал работать. Смотрите также это обсуждение поддержки RubyMine: http://devnet.jetbrains.com/message/5443846

Наконец-то все заработало сегодня с огромным взломом. Я думаю, что шаг, который сделал это

  1. sudo chmod -R 777 ~/.rvm

  2. Пусть RubyMine сделает свое дело

Я также удостоверился, чтобы удалить каждый драгоценный камень, который я имел кроме rake, Я думаю reby-debug-ide, ruby-debug-base19x, linecache19, ruby_core_source, archive-tar-minitar, а также columnize являются важными. Я тоже удалил rvm и переустановил с лязгом. Но я бы сначала попробовал сделать chmod. Я пытался перейти на 766, но RubyMine это не понравилось. Так круто взломать это. Теперь я получаю много предупреждений о Insecure world но по крайней мере отладчик работает. Я уверен, что в следующей версии RubyMine не будет использоваться старый ruby-debug-base19x, а вместо этого будут использоваться последние отредактированные гемы по адресу https://github.com/ruby-debug. Так что, надеюсь, кто-то из удивительных JetBrains это исправит. Кстати также попытался запустить RubyMine с sudo mine но это тоже не сработало.

У меня были некоторые проблемы с отладчиком. Я установил Rails и установил путь в параметрах конфигурации к ruby.exe в установке rails, и все работает отлично.

Другие вопросы по тегам