Ruby Debugger в RubyMine - PullRequest
       12

Ruby Debugger в RubyMine

2 голосов
/ 06 мая 2011

Я пытаюсь запустить отладчик в Rubymine, и я продолжаю получать эту ошибку.

/Users/skline/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/bin/rdebug-ide --port 49877 -- /Users/skline/Sites/2t2/app/mailers/user_notifications.rb
Fast Debugger (ruby-debug-ide 0.4.17.beta3, ruby-debug-base 0.11.26) listens on 127.0.0.1:49877
    <internal:lib/rubygems/custom_require>:29:in `require'
    <internal:lib/rubygems/custom_require>:29:in `require'
    /Users/skline/Sites/2t2/app/mailers/user_notifications.rb:1:in `<top (required)>'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/lib/ruby-debug-ide.rb:112:in `debug_load'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/lib/ruby-debug-ide.rb:112:in `debug_program'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/bin/rdebug-ide:87:in `<top (required)>'
    -e:1:in `load'
    -e:1:in `<main>'
Uncaught exception: no such file to load -- safe_mailer

Process finished with exit code 0

Есть мысли?

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

Похоже, драгоценный камень или другая зависимость, измененная в вашем приложении.Кажется, в сообщаемой вами ошибке есть ответ: проверьте ваш /app/mailers/user_notifications.rb и посмотрите, к чему призывает строка требования 1.Затем посмотрите на lib / rubygems / custom_require в строке 29. Один из этих двух файлов, похоже, запрашивает что-то, чего не может найти.У меня нет опыта работы с гемом, который вы используете, но, возможно, вы пропустили зависимость от гема, у вас есть ошибка в версии гема или оператор Include для чего-то, что больше не существует или переместило / изменило имена.

0 голосов
/ 18 октября 2016

Проблема

Я получил похожую ошибку при использовании Run> Debug с использованием RubyMine 2016.2.4.

/Users/Mp/.rvm/rubies/ruby-2.3.0/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/Mp/.rvm/gems/ruby-2.3.0@global/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide --disable-int-handler --evaluation-timeout 10 --rubymine-protocol-extensions --port 54743 --host 0.0.0.0 --dispatcher-port 54744 -- /Users/Mp/code/apps/ruby_test/team_system/team.rb
Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.1, file filtering is supported) listens on 0.0.0.0:54743

Process finished with exit code 0

Первоначально, когда я установил точку останова в примере файла ruby ​​team.rb иrun Run> Debug все работало (консоль отображала 0> вместо Process finished with exit code 0)

class Team attr_reader :size def initialize(size) @size = size end end team = Team.new(100)

Я часами пытался решить проблему безуспешно, следя за публикациями в Интернете.Я был готов переустановить RubyMine и решил связаться со службой поддержки по электронной почте.Я сказал, что перепробовал все, например:

  • Перезагрузка компьютера
  • Перезапуск RubyMine и запуск rm -rf .idea
  • Запуск gem pristine --all
  • Попытка с ruby ​​2.1.2 вместо 2.3.0 (т.е. rvm install 2.1.2 rvm list rvm use 2.1.2)
  • Проверка моей версии RVM rvm -v rvm 1.26.11
  • Проверка местоположениядрагоценных камней с gem env и which ruby.Это указывает на то, что они находятся как в / usr / bin / ruby, так и в /Users/Ls/.rvm/rubies/ruby-2.3.0/bin/ruby
  • Удаление (т. Е. gem uninstall ...) релевантных гемов в обоихглобальное расположение Ruby и RVM по умолчанию
  • Переустановка их снова $ gem install debug_inspector $ gem install debugger-linecache $ gem install ruby-debug-ide $ gem install debase $ gem install debase-ruby_core_source $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debug_inspector $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debug-linecache $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global ruby-debug-ide $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debase $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debase-ruby_core_source $ gem install linecache19-0.5.13.gem
  • Запуск bundle update
  • Обновление до RubyMine 2016.2.4
  • Переход к файлу> Настройки по умолчанию> Языки и фреймворки> Ruby SDK и Gems> и выбор использования RVM: ruby-2.3.0
  • Перейдите в «Выполнить»> «Редактировать конфигурации для текущего файла ruby» и на вкладке «Конфигурация» нажмите «Использовать другой SDK»"и выбираю RVM: ruby-2.3.0 [global] (я также пытался выбрать только RVM: ruby-2.3.0)

Solution

Я получил отзыв от службы поддержки RubyMineпредлагая показать им вывод gem list и включить подробный вывод (Настройки> Построение, Выполнение, Развертывание> Отладчик> Подробный отладчик).

Вместо немедленного ответа их отзывы дали мне сильную подсказкудолжно быть вызвано конфликтом драгоценных камней, поэтому яя применил следующий подход, который заставил его снова работать!

  • Очистил кэш RubyMine File > Invalidate Caches & Restart > Invalidate Caches & Restart
  • Показал гемы Ruby, хранящиеся глобально, в RVM 2.3.0 (глобальный) и вRVM 2.3.0 (по умолчанию).Примечание: я отфильтровал список, показанный ниже, чтобы отобразить только соответствующие

$ GEM_PATH=$GEM_HOME gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) debugger-linecache (1.2.0) linecache19 (0.5.13) ruby-debug-ide (0.6.1.beta2, 0.6.0) ruby_core_source (0.1.5)

$ rvm ruby-2.3.0 do gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) debugger-linecache (1.2.0) linecache19 (0.5.13) ruby-debug-ide (0.6.1.beta2, 0.6.0) ruby_core_source (0.1.5)

$ rvm ruby-2.3.0 @global do gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) linecache19 (0.5.13) ruby-debug-ide (0.6.0)

  • Установлена ​​последняя версия Ruby $ rvm install ruby-2.3.1
  • Показаны гемы Ruby в RVM 2.3.1 (глобальный) и RVM 2.3.1 (по умолчанию).Оба с одинаковым результатом

$ rvm ruby-2.3.1 do gem list $ rvm ruby-2.3.1 @global do gem list LOCAL GEMS bigdecimal (1.2.8) did_you_mean (1.0.0) gem-wrappers (1.2.7) io-console (0.4.5) json (1.8.3) minitest (5.8.3) net-telnet (0.1.1) power_assert (0.2.6) psych (2.0.17) rake (10.4.2) rdoc (4.2.1) rvm (1.11.3.9) test-unit (3.1.5)

  • Проверена текущая версия RVM и обновлена ​​с 1.26.11 до последней версии 1.27.0 $ rvm -v $ rvm get stable $ rvm reload $ rvm list
  • Создан Gemset специально для размещения драгоценных камней для тестирования функциональности с использованием RubyMine https://rvm.io/gemsets/basics rvm ruby-2.3.1 do rvm gemset create rubymine_2016_4_2
  • Проверенная версия Ruby изменилась $ ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
  • Открыл RubyMine 2016_2_4 и перешел в File>Настройки по умолчанию> Языки и рамки> Ruby SDK и Gems.Я отменил выбор RVM: ruby-2.3.0, а затем вместо этого выбрал RVM: ruby-2.3.1 rubymine_2016_2_4.Затем я щелкнул значок зеленой галочки, чтобы использовать его для проекта, и, наконец, нажал кнопку OK
  • С открытым файлом team.rb, который я хотел отладить, я открыл «Выполнить»> «Редактировать конфигурации».Затем я выбрал Other SDK: RVM: ruby-2.3.1 [rubymine_2016_2_4] и, наконец, нажал кнопку «ОК».Это вызвало появление всплывающего окна, в котором говорилось: «Требуемая отладчиком гема debase в данный момент не установлена. Хотите установить?».Я нажал Да
  • . Проверено, чтобы увидеть, как RubyMine изменил мой пользовательский набор rubymine_2016_2_4

$ rvm ruby-2.3.1@rubymine_2016_2_4 do gem list LOCAL GEMS bigdecimal (1.2.8) debase (0.2.2.beta8, 0.2.1) debase-ruby_core_source (0.9.2) did_you_mean (1.0.0) gem-wrappers (1.2.7) io-console (0.4.5) json (1.8.3) minitest (5.8.3) net-telnet (0.1.1) power_assert (0.2.6) psych (2.0.17) rake (10.4.2) rdoc (4.2.1) ruby-debug-ide (0.6.1.beta2) rvm (1.11.3.9) test-unit (3.1.5)

  • Попытался снова выполнить отладку, установив точку останова вПример файла ruby ​​team.rb и запустите Run> Debug.Это работало и утешало это отображало 0> вместо Process finished with exit code 0
...