2013-05-09 61 views
6

我可以知道有经验的OCaml开发人员如何调试他的代码吗?如何正确调试OCaml代码?

什么我做的是只用Printf.printf。这太麻烦了,因为当我需要一个干净的输出时,我必须将它们全部发表出来。

我应该如何更好地控制这个调试过程?打开或关闭这些logging的特殊注释?

感谢

回答

7

您可以使用bolt用于此目的。这是一个语法扩展。

Btw。 Ocaml有一个真实的debugger

4

有OCaml的调试器,你可能不知道,其中的一项功能是不是通常与状态编程发现,被称为时间旅行。请参阅部分16.4.4。基本上,由于步骤之间的所有信息都保存在堆栈中,因此通过在处理期间保存与每个步骤相关的更改,可以及时移动所做的更改以查看该步骤期间的值。一旦将每个步骤中的所有值记录到数据存储中,然后根据步骤编号索引到该数据存储中以查看该步骤中的值,可以将其视为运行程序。

2

您还可以使用ocp-ppx-debug这将增加一个printf与良好的位置,而不是手动添加的。

https://github.com/OCamlPro-Couderc/ocp-ppx-debug