Ruby-debug с Ruby 1.9.3?
Я только что обновился до Ruby 1.9.3p0 и Rails 3.1.1. Теперь, когда я пытаюсь запустить сервер, он жалуется, что я должен установить ruby-debug
, даже если он уже установлен.
% rails server --environment=development --debug
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'
Exiting
В моем Gemfile у меня есть
# see: http://stackoverflow.com/info/1083451/debugging-in-ruby-1-9
gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"
Можно ли запустить debug с последней версией Ruby?
Ответы
Ответ 1
Обновление (28 апреля 2012 г.)
Попробуйте новый debugger gem в качестве замены ruby-debug.
(кредит для @ryanb)
Обновление (2 марта 2012 г.)
Установка linecache19 и ruby-debug-base19 может быть легко выполнена с помощью
bash < <(curl -L https://raw.github.com/gist/1333785)
(кредит @fredostarr)
Оригинальный ответ
Посмотрели ли вы на ruby-debug19 на ruby-1.9.3-preview1?
Здесь временное решение: http://blog.wyeworks.com/2011/11/1/ruby-1-9-3-and-ruby-debug
Выдержка из сайта:
Сначала загрузите linecache19-0.5.13.gem и ruby-debug-base19-0.11.26.gem из http://rubyforge.org/frs/?group_id=8883, затем...
$ gem install linecache19-0.5.13.gem
Building native extensions. This could take a while...
Successfully installed linecache19-0.5.13
1 gem installed
$ gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=/Users/santiago/.rbenv/source/ruby-1.9.3-p0
Building native extensions. This could take a while...
Successfully installed ruby-debug-base19-0.11.26
1 gem installed
$ irb
irb(main):001:0> require 'ruby-debug'
=> true
Ответ 2
Установка linecache19 и ruby-debug-base19 может быть легко выполнена с помощью
bash < <(curl -L https://raw.github.com/gist/1333785)
Ответ 3
Кто-то еще отправил в комментарий, чтобы попробовать Pry, вот что я сделал. Это необходимо для Rails:
# Gemfile
gem 'pry-rails'
# In your Rails Project where you want a 'debugger'
puts 'i want to insert some code between this'
binding.pry
puts 'and this'
Сразу после установки я заметил, что мой .irbrc
не загружается, поэтому я не получаю довольно консольный вывод. Я также добавил это в свой '~/.pryrc'
# setting up pry to have irb helpers like reload!
if defined?(Rails) && Rails.env
extend Rails::ConsoleMethods
end
У Pry есть некоторые интересные функции, которые я хотел проверить, и я могу вернуться к ruby-debug, когда есть простой способ интегрировать его в проект Rails для Ruby 1.9.3. Я могу запустить команду curl из других ответов, но это то, что я должен указать своим товарищам по команде для нашего проекта Rails, поэтому он не масштабируется хорошо IMO.
Ответ 4
Может быть, не окончательный ответ на этот вопрос, но я был здесь цепью замкнутых дубликатов.
Для меня проблема заключалась в том, что я запускаю проект как в ruby 1.8, так и в ruby 1.9, и мой Gemfile нуждался в этом изменении:
gem 'debugger', :require => 'ruby-debug', :platforms => :mri_19
gem 'ruby-debug', :platforms => :mri_18
Теперь он работает для обоих рубинов.
Подробнее см. здесь: http://gembundler.com/man/gemfile.5.html#PLATFORMS-platforms-
Ответ 5
Для пользователей Windows:
Первая загрузка: linecache19-0.5.13.gem и ruby-debug-base19-0.11.26.gem
От: http://rubyforge.org/frs/?group_id=8883&release_id=46303
Предположение: Ruby находится в c:\Ruby1.93
поместите файлы gem, загруженные в c:\temp
(linecache19-0.5.13.gem и ruby-debug-base19-0.11.26.gem)
затем выполните из командной строки:
gem install c:\temp\linecache19-0.5.13.gem
gem install c:\temp\ruby-debug-base19-0.11.26.gem - --with-ruby-include = C:\Ruby1.93\include\ruby-1.9.1\ruby-1.9. 3-р0
Ответ 6
Кстати, если вы используете новейший патч для ruby1.9.3 (falcon, https://gist.github.com/1688857), используйте следующие команды
wget http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
wget http://rubyforge.org/frs/download.php/75415/ruby-debug-base19-0.11.26.gem
gem install linecache19-0.5.13.gem
## with rvm:
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$HOME/.rvm/src/ruby-1.9.3-p0-falcon
## with rbenv (this is a guess):
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$HOME/.rbenv/source/ruby-1.9.3-p0-falcon
Ответ 7
См. мой ответ здесь:
Ruby-debug не работает - переполнение стека
О попытке отладки Ruby работать со следующей настройкой
В принципе, мне пришлось использовать:
linecache19 (0.5.13)
ruby-debug-base19x (0.11.30.pre10)
ruby-debug-ide (0.4.16)
Обратите внимание, что я не использую ruby-debug-base19, а ruby-debug-base19x
Надеюсь, это поможет!
- Фредди
Ответ 8
Также вам нужно проверить, установлен ли gem 'ruby_source_code'.
Отметьте: http://bugs.ruby-lang.org/issues/1857#note-8
Ответ 9
Если у вас нет rvm и предполагается, что рубиновая установка находится в /usr/local/ruby -1.9.3-po, вы можете использовать эту команду:
curl -L https://raw.github.com/gist/1533750 | sudo/bin/bash