2013-03-04 12 views
29

Wiem, że klejnot debuggera nie jest i nigdy nie będzie kompatybilny z ruby ​​2.0 za "officially support ruby 2.X".Jak używać debuggera z Ruby 2.0?

W changeloga Ruby 2.0 jest:

obsługi debugowania

wsparcie DTrace, co umożliwia rozpoznanie przebiegiem procesu w

produkcji TracePoint, który jest ulepszony API śledzenia

Czy jest coś, czego można się spodziewać po debugowaniu z Ruby 2.0? Czy ktoś może mi to wyjaśnić?

Odpowiedz

55

Debuger klejnot może być używany, ale nadal ma problemy.

Zainstaluj byebug, który został napisany dla debugowania Ruby 2.0.

Dla punktów przerwania użyj polecenia byebug w kodzie zamiast debugger.

+0

Naprawdę nie działa z Ruby 2.0.0 (http://stackoverflow.com/q/17044127/388916) – Hubro

+0

Działa, ja używam byebug codziennie: Rails 3.2.13, rvm 1.20.10, ruby ​​2.0 .0p195 i gem byebug 1.4.0. –

+2

@ Codemonkey, byebug nie pracuje (i nie będzie) z Ruby 1.9.x, ale musi pracować dla Ruby 2.0.0, ponieważ jest to jego jedyny cel. Właśnie odpowiedziałem na twoje pytanie, jeśli byeb nadal nie działa dla ciebie, proszę daj mi znać. – deivid

7

Wersja 1.4.0 klejnotu debuggera jest teraz instalowana bez problemów. Wciąż istnieją pewne problemy, ale wkrótce powinno to zostać naprawione.

Debuger gem nie gra dobrze z Ruby 2. Zamiast instalować gem Byebug że jest w pełni kompatybilny z Ruby 2.

+9

jakiekolwiek szczegóły dotyczące problemów? Mam problem z "następnym" zachowaniem się jak "krok", co uniemożliwia użycie. –

+4

Witam @StevenSoroka, Zrobiłem ten klejnot, aby rozwiązać problemy debuggera z Ruby 2.0: [byebug] (https://github.com/deivid-rodriguez/byebug). Jeśli spróbujesz i masz jakieś problemy, daj mi znać. – deivid

+0

Dzięki @devid! To mnie zabija. –

0

Zastosowanie pry:

gem install pry 
gem install pry-debugger 

Patrz "Debugging Ruby With Pry".

+3

Pry jest świetny, jeśli chcę wydrukować stan lub zbadać rzeczy i może wiedzieć, gdzie trafić punkty podważenia. Nie pozwala mi to krokować ani następować, ani ustawiać pułapek przed czasami, i jako takie nie jest właściwie wystarczającym zamiennikiem dla debuggerów, gdy dostępne są debuggery. –

Powiązane problemy