Отладка в ruby 1.9
Что вы, ребята, используете для отладки в ruby 1.9? rdebug, похоже, не совместим.. там что-нибудь есть?
12 ответов:
Примечание: этот ответ был правильным, но теперь устарели. Смотрите ниже Правильный ответ. TL;DR: теперь используйте "отладчик".
ruby-debug теперь доступен с Ruby 1.9.x. см.http://www.github.com/mark-moseley
для установки (с помощью gem на 1.9 Ruby установки):
gem install ruby-debug19
(возможно, с необходимым 'sudo' перед ним).
ruby-debug19
больше не поддерживается. Все остальные ответы устарели.но есть альтернатива:
debugger
на помощь!положите это в ваш
Gemfile
:gem 'debugger', group: [:development, :test]
он просто работает. - и он включен в rails Gemfile с 3.2.что-то заменить
ruby-debug19
. Он имеет точно такую же функциональность и активно поддерживается.
обновление для RUBY 2.0+ и после
byebug в настоящее время рекомендуется отладчик для Ruby 2.0+
этот вопрос был документы, и cldwalker, автор debugger, отмечает, что отладчик будет ограничен Ruby 1.9.2 и 1.9.3.
обновление 2
Это правда, что ruby-debug не поддерживается активно, даже если я не могу найти нигде, что не поддерживается длиннее.
можно использовать новый отладчик gem если вам нужна помощь, чтобы начать с нового камня можно посмотреть Райан Бейтс рельсы отливали.
в вашем Gemfile поставить:
gem 'debugger', group: [:development, :test]
затем вы можете добавить точку останова в любом месте кода с помощью
debugger
ключевое слово.ВЫ ВСЕ ЕЩЕ МОЖЕТЕ ИСПОЛЬЗОВАТЬ
linecache19 и ruby-debug-base19 с:
bash https://raw.github.com/gist/1333785)
СТАРЫЕ ОТВЕТЫ
просто добавьте об этом с rvm, ruby 1.9.1-p378. Правда в том, что даже если ruby-debug-1.9.x готов, linecache-0.43 нет. Решение заключается в установке:
gem install ruby-debug19
Это решает проблему для меня.
СТАРОЕ ОБНОВЛЕНИЕ
если у вас возникли проблемы с ruby 1.9.2 и Rails 3 отладки положить:
gem 'ruby-debug-base19', "0.11.24" gem 'ruby-debug19', "0.11.6"
в файле и делать
bundle install
сделает вас счастливым отладчиком снова.
некоторые вещи, которые вы могли бы попробовать
1) Запустите его с помощью обычного отладчика ruby-rdebug [1] вроде медленного
2) Запустите его с unroller gem [вид воняет, путь медленный]
3) используйте много операторов печати быстро, вид меньше самоанализа возможно
4) перейдите в приглашение irb и запустите оттуда некоторый код.
вы можете перечислить код, создав свой собственный "drop to irb prompt", в котором указан код вокруг себя [используйте caller для обнаружения где вы где] затем перейдите к обычному приглашению irb.
5) может быть jruby в режиме 1.9 compat имеет отладчик?
если у вас все еще есть проблемы после установки ruby-debug19 попробуйте обновить ruby-debug-base19. У меня были ошибки и я не мог запустить WEBrick в режиме отладки, пока не сделаю это.
gem update ruby-debug-base19
смотрите мой ответ здесь : Ruby-debug не работает-переполнение стека
речь идет о том, чтобы отладка Ruby работала со следующей настройкой
- Mac OS X Lion 10.7.2
- Aptana Studio 3 (Build 3.0.8.201201201658)
используя rvm, в моем рабочем каталоге проекта у меня есть .rvmrc заявив:
rvm use ruby-1.9.3-p0@mygemset
надеюсь, это поможет!
-- Freddy
Я использовал следующее, И это отлично работает для меня:
gem 'debugger', group: [: development,: test]
ruby 1.9. 3p194 (2012-04-20 редакция 35410) [x86_64-linux] рельсы 3.2.8
версия ruby 1.9.1-p243 отсутствует, и compitable ruby-debug-ide также работает правильно. Установите ruby-debug-ide с помощью следующей команды:
gem install ruby-debug-ide
Это позволит установить Рубин-отладка-base19 и Рубин-отладка-язь камней. Но перед этим убедитесь, что вы успешно установили mingw, следуя документам Development kit, доступным из RubyForge.
есть много вариантов, в зависимости от ваших потребностей.
Я использую pry-moves потому что я могу "оглянуться назад" в то, что произошло внутри предыдущей команды, повторно выполнив их в режиме отладки прямо с места.
никто не использует: ruby-скрипт rdebug.РБ
затем вы можете использовать: б сценарий.rb:## (где # # - номер строки действительной команды ruby) в противном случае вы, возможно, окажетесь в середине rubygems или одного из необходимых фрагментов кода.
тогда вы можете просто установить следующую точку останова как b:##