Czego używacie do debugowania w Rubim 1.9? Wydaje się, że rdebug nie jest kompatybilny… czy jest tam coś?
Odpowiedzi:
Uwaga: ta odpowiedź była poprawna, ale teraz jest nieaktualna. Zobacz poniżej poprawną odpowiedź. TL; DR: użyj teraz „debuggera”.
Ruby-debug jest teraz dostępny w Ruby 1.9.x. Zobacz http://www.github.com/mark-moseley
Aby zainstalować (używając gem w instalacji 1.9 Ruby):
gem install ruby-debug19
(być może z niezbędnym „sudo” przed nim).
ruby-debug19
nie jest już utrzymywany. Wszystkie inne odpowiedzi są nieaktualne.
Ale jest alternatywa:
debugger
na pomoc!
Umieść to w swoim Gemfile
:
gem 'debugger', group: [:development, :test]
Po prostu działa. - I jest zawarty w szynach Gemfile od 3.2. Coś do wymiany ruby-debug19
. Ma dokładnie taką samą funkcjonalność i jest aktywnie utrzymywany.
group :development do ... end
lub tym podobnym), ponieważ zawiera już grupę.
AKTUALIZACJA DLA RUBY 2.0+ i NASTĘPUJĄCA
byebug to obecnie zalecany debugger dla Ruby 2.0+
Ten problem został udokumentowany tutaj , a cldwalker, autor debuggera, zauważa, że zakres debuggera będzie obejmował Ruby 1.9.2 i 1.9.3.
AKTUALIZACJA 2
Prawdą jest, że ruby-debug nie jest aktywnie obsługiwany, nawet jeśli nie mogę znaleźć niczego, co nie jest już obsługiwane.
Możesz użyć nowego klejnotu debuggera, jeśli potrzebujesz pomocy, aby zacząć od nowego klejnotu, który możesz zobaczyć, rzucając szyny Ryana Batesa .
W swoim Gemfile umieść:
gem 'debugger', group: [:development, :test]
Następnie możesz dodać punkt przerwania w dowolnym miejscu kodu za pomocą debugger
słowa kluczowego.
WCIĄŻ MOŻESZ UŻYWAĆ
linecache19 i ruby-debug-base19 z:
bash <<(curl -L https://raw.github.com/gist/1333785 )
STARE ODPOWIEDZI
Jeszcze tylko dodatek o rvm, ruby 1.9.1-p378. Prawda jest taka, że nawet jeśli Ruby-debug jest gotowy w wersji 1.9.x, to linecache-0.43 już nie. Rozwiązaniem jest zainstalowanie:
gem install ruby-debug19
To rozwiązuje problem za mnie.
OLD UPDATE
Jeśli masz problemy z Ruby 1.9.2 i debugowaniem Rails 3, wstaw:
gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"
W swoim Gemfile i robiąc plik
bundle install
Sprawi, że znów będziesz szczęśliwym debugerem.
Możesz spróbować kilku rzeczy
1) uruchom go z normalnym debugerem Rubiego -rdebug [1], trochę powolnym
2) uruchom go z unroller gem [trochę śmierdzi, dużo wolno]
3) szybko używaj wielu instrukcji drukowania, mniej introspekcji
4) upuść na znak zachęty irb i uruchom stamtąd jakiś kod.
możesz wyświetlić kod, tworząc własną podpowiedź „drop to irb”, która wyświetlałaby kod wokół siebie [użyj wywołującego, aby odkryć, gdzie jesteś], a następnie przejdź do normalnej zachęty irb.
5) może jruby w trybie kompatybilności 1.9 ma debugger?
Zobacz moją odpowiedź tutaj: Ruby-debug nie działa - przepełnienie stosu
Chodzi o to, aby debugowanie Rubiego działało z następującą konfiguracją
Używając rvm, w katalogu roboczym mojego projektu mam plik .rvmrc stwierdzający:
rvm use ruby-1.9.3-p0@mygemset
Mam nadzieję, że to pomoże!
- Freddy
Użyłem następujących i działa dla mnie świetnie:
gem „debugger”, grupa: [: programowanie,: test]
ruby 1.9.3p194 (2012-04-20 wersja 35410) [x86_64-linux] rails 3.2.8
Netbeans to dobre środowisko IDE dla RoR. Dobry debugger.
Wersja Ruby 1.9.1-p243 jest już niedostępna, a kompatybilny plik ruby-debug-ide również działa poprawnie. Zainstaluj ruby-debug-ide za pomocą następującego polecenia:
gem install ruby-debug-ide
Spowoduje to zainstalowanie klejnotów ruby-debug-base19 i ruby-debug-ide. Ale zanim to nastąpi, upewnij się, że pomyślnie zainstalowałeś mingw, postępując zgodnie z dokumentacją Development kit dostępną w RubyForge .
Najnowsze funkcje są dostępne w ruby-debug-ide19 gem.
Istnieje wiele możliwości wyboru, w zależności od Twoich potrzeb.
Używam ruchów podważających, ponieważ mogę „spojrzeć wstecz” na to, co wydarzyło się w poprzedniej komendzie, wykonując je ponownie w trybie debugowania bezpośrednio z miejsca.
nikt nie używa: ruby -rdebug script.rb
wtedy możesz użyć: b script.rb: ## (gdzie ## to numer linii prawidłowego polecenia ruby), w przeciwnym razie być może będziesz w środku rubygemów lub jednego z wymaganych fragmentów kodu.
Następnie możesz po prostu ustawić następny punkt przerwania jako b: ##
ruby-debug19
jest teraz nieaktualny.