Подтвердить что ты не робот

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

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

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

Свежий (т.е. удалив все предыдущие рубиновые и драгоценные каталоги) установку 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. Итак, следуя qaru.site/info/306101/..., я комментирую отладчик из 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 работает снова. Поэтому я пытаюсь дважды щелкнуть в желобе моего script, чтобы создать точку останова, 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)>'

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

Просто для документирования решения от 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/whatever может работать с удовольствием, не требуя создания драгоценного камня в среде RubyMine.

Ответ 4

У меня была такая же проблема, и мне стоило часов, чтобы заставить ее работать. Вот что наконец получило отладчик (это используется 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
  • Lauch RubyMine и запустите отладчик; он будет информировать о недостающих камнях отладки (т.е. ruby-debug-ide); пусть RubyMine установит их.

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

Ответ 5

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

  • sudo chmod -R 777 ~/.rvm

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

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

Ответ 6

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