Есть ли эквивалент Pry for Crystal?

Я новичок в кристальном языке. Я хотел бы знать, существует ли в Crystal отладчик вроде Ruby's Pry?

Это означает, что вы можете поместить в код что-то вроде 'binding.pry' при остановке выполнения программы в этой строке и позволить вам управлять переменными.


person Voldemar Duletskiy    schedule 18.02.2016    source источник


Ответы (2)


Хотя это очень неполно, но есть поддержка LLDB.

Вы можете добавить debugger в любом месте вашего кода, чтобы инициировать точку останова для остановки LLDB. Вы должны (должны?) Создать двоичный файл с флагом -d или --debug, а затем запустить его с помощью LLDB:

$ crystal build -d foo.cr
$ lldb ./foo
(lldb) run

См. https://groups.google.com/forum/m/#!topic/crystal-lang/gRf-yDNdZ-Y для более подробного примера.

person Julien Portalier    schedule 21.02.2016

На момент написания этого есть только ответ Жюльена с компиляцией в режиме отладки, помещением оператора debugger для создания точки останова и последующим его запуском с lldb. Однако на горизонте маячит новый трюк:

В своем великолепном выступлении Crystal по запросу на конференции Crystal 1.0 Ари представил переводчика Crystal над которым он работал. Он включает REPL, но он также реализовал отладчик для Crystal в стиле Pry.

Он еще не выпущен, но вы можете увидеть его в действии в этом докладе. Раздел интерактивного отладчика начинается в 9:41.

Он также использует оператор debugger для запуска точки останова. Если вы запустите код с crystal i в режиме интерпретации, нажатие на точку останова приведет к интерактивному сеансу отладки, как в Pry. Детали могут измениться, так как это был только предварительный просмотр, но вы уже можете увидеть потенциал.

Если вы хотите следить за развитием, запрос на включение выглядит следующим образом: # 10910: crystal i.

person Philipp Claßen    schedule 25.07.2021