是否有相当于Pry for Crystal?

时间:2016-02-18 20:34:53

标签: crystal-lang

我是水晶语言的新手。我想知道Crystal中是否存在像Ruby' Pry这样的调试器?

这意味着您可以输入类似于' binding.pry'在程序停止执行此行并让您控制变量。

2 个答案:

答案 0 :(得分:24)

虽然非常不完整,但仍支持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

答案 1 :(得分:3)

在撰写本文时,只有 Julien 的答案是在调试模式下编译,放置 debugger 语句以创建断点,然后使用 lldb 运行它。然而,地平线上有一个新的技巧:

在 Crystal 1.0 会议上的精彩演讲 Crystal on demand 中,Ary 透露了他一直在研究的 Crystal 解释器。它包括一个 REPL,但除此之外,他还为 Crystal 实现了一个类似 Pry 的调试器。

它尚未发布,但您可以在本次演讲中看到它的实际应用。交互式调试器部分 starts at 9:41

它还使用 debugger 语句来触发断点。如果在解释模式下使用 crystal i 运行代码,点击断点将进入交互式调试会话,就像在 Pry 中一样。细节可能会改变,因为它只是一个预览,但你已经可以看到潜力了。

如果你想关注开发,拉取请求是#10910: crystal i