Невозможно отладить в 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
Наконец-то все заработало сегодня с огромным взломом. Я думаю, что шаг, который сделал это
sudo chmod -R 777 ~/.rvm
Пусть 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, и все работает отлично.