команда ruby-debug-ide, эксплуатирующаяся у меня перед носом

#ruby-on-rails #ruby #rubygems

Вопрос:

Поэтому я работаю над тем, чтобы выполнить какое-то приятное действие удаленной отладки в старом приложении, и нашел некоторые инструкции через https://github.com/ruby-debug/ruby-debug-ide чтобы запустить мой рубимин. Установка этих двух драгоценных камней в мой файл драгоценных камней…

 gem 'ruby-debug-base19x', '~> 0.11.32'
gem 'ruby-debug-ide'
 

драгоценные камни установлены нормально

НО когда я загружаю команду rdebug, я получаю эту ошибку…

 $ rdebug
/home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require': /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.so: undefined symbol: ruby_current_thread - /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.so (LoadError)
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby-debug-base.rb:1:in `<top (required)>'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug19-0.11.6/cli/ruby-debug.rb:5:in `<top (required)>'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug19-0.11.6/bin/rdebug:108:in `require_relative'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug19-0.11.6/bin/rdebug:108:in `<top (required)>'
    from /home/fonso/.rbenv/versions/1.9.3-p551/bin/rdebug:23:in `load'
    from /home/fonso/.rbenv/versions/1.9.3-p551/bin/rdebug:23:in `<main>'
 

даже полная команда rdebug-ide взрывается мне в лицо

 $ rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- rails s
/home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require': /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.so: undefined symbol: ruby_current_thread - /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.so (LoadError)
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-base19-0.11.25/lib/ruby-debug-base.rb:1:in `<top (required)>'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.7.2/lib/ruby-debug-ide.rb:6:in `<top (required)>'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.7.2/bin/rdebug-ide:8:in `require_relative'
    from /home/fonso/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.7.2/bin/rdebug-ide:8:in `<top (required)>'
    from /home/fonso/.rbenv/versions/1.9.3-p551/bin/rdebug-ide:23:in `load'
    from /home/fonso/.rbenv/versions/1.9.3-p551/bin/rdebug-ide:23:in `<main>'
 

Есть какие-нибудь идеи о том, как разгадать эту тайну?

Ответ №1:

Итак, используя список драгоценных камней и передав отладку grep, я обнаружил, что в моей коробке есть несколько странных драгоценных камней

 $ gem list | grep debug
debug_inspector (0.0.3)
debugger-linecache (1.2.0)
debugger-ruby_core_source (1.3.8)
ruby-debug-base19 (0.11.25)
ruby-debug-base19x (0.11.32)
ruby-debug-ide (0.7.2)
ruby-debug19 (0.11.6)
 

Обратите внимание на две штуки на базе ruby-debug19? да, я подозревал, что это может быть проблемой наряду с некоторыми другими. Так что в итоге я удаляю некоторые драгоценные камни…

 $ gem list | grep debug
debug_inspector (0.0.3)
debugger-ruby_core_source (1.3.8)
ruby-debug-base19x (0.11.32)
ruby-debug-ide (0.7.2)
 

Теперь, когда я запускаю команду отладки для rubymine, она работает

rdebug-ide —хост 0.0.0.0 —порт 1234 —диспетчер-порт 26162 — рельсы s

Быстрый отладчик (ruby-debug-ide 0.7.2, ruby-debug-base19x 0.11.32, фильтрация файлов не поддерживается) прослушивает 0.0.0.0:1234

У-У-у!