Налагодження в ruby ​​1.9


90

Що ви, хлопці, використовуєте для налагодження в ruby ​​1.9? rdebug, здається, не сумісний .. чи є щось там?


10
Ігнорувати першу відповідь; ruby-debug19зараз застарілий.
Роб Говард,

Відповіді:


50

Примітка: ця відповідь була правильною, але зараз застаріла. Дивіться нижче правильну відповідь. TL; DR: використовуйте "налагоджувач" зараз.

ruby-debug тепер доступний з Ruby 1.9.x. Див. Http://www.github.com/mark-moseley

Щоб встановити (за допомогою gem на установці 1.9 Ruby):

gem install ruby-debug19

(з, можливо, необхідним "sudo" перед ним).


Я зробив побіжну спробу, і вона не спрацювала. Потрібно трохи більше часу, щоб подивитися на це.
Mark Moseley

ruby-debug-ide працює зараз - ви можете отримати новий дорогоцінний камінь за адресою cloud.github.com/downloads/mark-moseley/ruby-debug/…
Марк Мозлі

Це ВЕЛИКА новина! Дякую!
andi

приємна робота :) але чи можете ви зробити fatgem (що містить версії 1.8 та 1.9 ruby-debug), щоб нам не потрібно було пам'ятати, щоб робити rubydebbug19? :)
horseyguy

4
Не здається справедливим голосувати проти цього лише тому, що з часом час зробив неправильну відповідь. SO потребує певного способу обробки таких випадків використання, щоб нова правильна відповідь стала першою у списку, не караючи авторів старих відповідей, які вже нікому не корисні.
іконоборці

167

ruby-debug19більше не підтримується. Усі інші відповіді застарілі.

Але є альтернатива:

debugger на допомогу!

Помістіть це у свій Gemfile:

gem 'debugger', group: [:development, :test]

Це просто працює. - І він включений у рейки Gemfile з 3.2. Щось замінює ruby-debug19. Він має абсолютно однакову функціональність і активно підтримується.


1
Працює гарно. Набагато краще, ніж встановлення ruby-налагодження вручну. Дякую.
manu_v

5
Це справді потрібно перенести вгору як головну відповідь.
Matt Zukowski

2
Так, насправді ця відповідь повинна бути основною відповіддю.
Назар Хуссейн,

А як щодо того, куди це насправді йде в Gemfile.
Ріг

Не важливо. Помістіть його куди завгодно, просто не всередині блоку групи (Не в group :development do ... endабо подібне), оскільки він уже містить групу.
iblue

70

ОНОВЛЕННЯ ДО РУБІНІВ 2.0+ та ПЕРЕГЛЯДУ

byebug - наразі рекомендований налагоджувач для Ruby 2.0+

Ця проблема була задокументована тут , і cldwalker, автор налагоджувача, зазначає, що налагоджувач буде застосовано до Ruby 1.9.2 та 1.9.3.

ОНОВЛЕННЯ 2

Це правда, що ruby-налагодження не підтримується активно, навіть якщо я не можу знайти ніде, що більше не підтримується.

Ви можете скористатися новою саморобкою-налагоджувачем, якщо вам потрібна допомога, щоб розпочати роботу з новою самоцвітом, яку ви бачите, як відливали рейки Раяна Бейтса .

У вашому 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 і робити a

bundle install

Знову зробить вас щасливим налагоджувачем.


1
Дякую, для мене це була найбільш відповідна відповідь. Але, можливо, це тому, що ви відповіли майже рік потому, і все змінилося назавжди в цьому плані.
позначка

3

Деякі речі ви можете спробувати

1) запустити його за допомогою звичайного налагоджувача ruby ​​-rdebug [1] повільно

2) запустити його з розкочувальним камінням [вид смердить, шлях повільний]

3) швидко використовувати багато операторів друку, набагато менше самоаналізу

4) перейдіть до запиту irb і запустіть звідти код.

Ви можете перерахувати код, створивши власний підказку "drop to irb", в якій перелічений код навколо себе [використовуйте абонента, щоб дізнатися, де ви знаходитесь], а потім перейдіть до звичайного підказки irb.

5) можливо jruby в режимі compat 1.9 має налагоджувач?

[1] http://beaver.net/rdebug/index-0.html


3

Якщо після встановлення ruby-debug19 проблема все ще виникає, спробуйте оновити ruby-debug-base19. У мене були помилки, і я не міг запустити WEBrick у режимі налагодження, поки цього не зробив.

gem update ruby-debug-base19

О, і дякую містеру Мозлі за всю вашу важку працю!


2

Дивіться мою відповідь тут: Ruby-налагодження не працює - Stack Overflow

Йдеться про те, щоб налагодження Ruby працювало з наступними налаштуваннями

  • Mac OS X Lion 10.7.2
  • Aptana Studio 3 (збірка 3.0.8.201201201658)
  • Використовуючи rvm, у моєму робочому каталозі проекту є файл .rvmrc із зазначенням:

    rvm use ruby-1.9.3-p0@mygemset

Сподіваюся, це допоможе!

- Фредді


2

Я використовував наступне, і це чудово для мене працює:

самоцвіт "налагоджувач", група: [: розвиток,: тест]

ruby 1.9.3p194 (2012-04-20 редакція 35410) [x86_64-linux] рейки 3.2.8


0

Netbeans - це хороша IDE для RoR. Хороший налагоджувач теж.


1
Виправте мене, якщо я помиляюся, але я не вірю, що налагоджувач ще працює для Ruby 1.9.1 (реалізація C). Принаймні, мені не вдалося змусити його працювати.
JP Richardson,

0

Вийшла версія ruby ​​1.9.1-p243, а сумісний ruby-debug-ide також працює належним чином. Встановіть ruby-debug-ide, використовуючи таку команду:

gem встановити ruby-debug-ide

Це встановить камені ruby-debug-base19 та ruby-debug-ide. Але перед цим переконайтеся, що ви успішно встановили mingw, слідуючи документам набору для розробки, доступних у RubyForge .


0

Найновіші функції доступні у самоцвіті ruby-debug-ide19.


0

Є багато варіантів, залежно від ваших потреб.

Я використовую Pry-Moves, тому що можу "озирнутися" на те, що відбулося в попередній команді, повторно виконавши їх у режимі налагодження прямо з місця.


-1

ніхто не використовує: ruby ​​-rdebug script.rb

тоді ви можете використовувати: b script.rb: ## (де ## - це номер рядка дійсної команди ruby), інакше ви, можливо, опинитеся в центрі rubygems або на одному з необхідних фрагментів коду.

Тоді ви можете просто встановити наступну точку зупинки як b: ##

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.