Что вы, ребята, используете для отладки в Ruby 1.9? rdebug кажется несовместимым ... есть что-нибудь там?
Ответы:
Примечание: этот ответ был правильным, но сейчас устарел. См. Правильный ответ ниже. 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]
Это просто работает. - И он входит в рельсы Gemfile начиная с 3.2.что-то на замену ruby-debug19
. Он имеет точно такую же функциональность и активно поддерживается.
group :development do ... end
и т.п.), потому что он уже содержит группу.
ОБНОВЛЕНИЕ ДЛЯ РУБИНА 2.0+ И ПОСЛЕДУЮЩИЕ
byebug - рекомендуемый отладчик для Ruby 2.0+.
Эта проблема была задокументирована здесь , и cldwalker, автор отладчика, отмечает, что отладчик будет ограничен до Ruby 1.9.2 и 1.9.3.
ОБНОВЛЕНИЕ 2
Это правда, что ruby-debug активно не поддерживается, даже если я не могу найти нигде, которая больше не поддерживается.
Вы можете использовать новый гем отладчика, если вам нужна помощь, чтобы начать с новым драгоценным камнем, вы можете увидеть, как отлитые рельсы Райана Бейтса .
В вашем Gemfile поместите:
gem 'debugger', group: [:development, :test]
Затем вы можете добавить точку останова в любом месте вашего кода, используя debugger
ключевое слово.
ВЫ ЕЩЕ МОЖЕТЕ ИСПОЛЬЗОВАТЬ
linecache19 и ruby-debug-base19 с:
bash <<(curl -L 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"
В вашем Gemfile и выполняя
bundle install
Снова сделает вас счастливым отладчиком.
Некоторые вещи, которые вы могли бы попробовать
1) запустите его с помощью обычного отладчика ruby -rdebug [1] медленно
2) запустите его с помощью unroller gem [воняет, очень медленно]
3) быстро используйте много операторов печати, возможно меньше самоанализа
4) перейдите к приглашению irb и запустите оттуда код.
вы можете перечислить код, создав свое собственное приглашение «перейти в irb», которое перечисляет код вокруг себя [используйте вызывающую программу, чтобы узнать, где вы где], а затем перейти к обычному приглашению irb.
5) может быть, у jruby в режиме совместимости 1.9 есть отладчик?
Смотрите мой ответ здесь: Ruby-debug не работает - qaru
Речь идет о том, чтобы отладка Ruby работала со следующей настройкой
Используя rvm, в моем рабочем каталоге проекта у меня есть .rvmrc, в котором указано:
rvm use ruby-1.9.3-p0@mygemset
Надеюсь, это поможет!
- Фредди
Я использовал следующие, и они отлично мне подходят:
гем "отладчик", группа: [: разработка,: тест]
ruby 1.9.3p194 (2012-04-20 ревизия 35410) [x86_64-linux] rails 3.2.8
Netbeans - хорошая IDE для RoR. Хороший отладчик тоже.
Версия ruby 1.9.1-p243 отсутствует, и совместимый ruby-debug-ide также работает правильно. Установите ruby-debug-ide с помощью следующей команды:
гем установить ruby-debug-ide
Это установит драгоценные камни ruby-debug-base19 и ruby-debug-ide. Но перед этим убедитесь, что вы успешно установили mingw, следуя документации комплекта разработчика, доступной на RubyForge .
Последние функции доступны в gem ruby-debug-ide19.
Есть много вариантов, в зависимости от ваших потребностей.
Я использую pry-move, потому что могу «оглянуться назад» на то, что произошло внутри предыдущей команды, повторно выполнив их в режиме отладки прямо с места.
никто не использует: ruby -rdebug script.rb
тогда вы можете использовать: b script.rb: ## (где ## - номер строки действующей команды ruby), в противном случае вы, возможно, окажетесь в середине rubygems или одного из требуемых фрагментов кода.
Затем вы можете просто установить следующую точку останова как b: ##
ruby-debug19
устарело сейчас.