如何正确调试OCaml代码?

时间:2013-05-09 08:24:15

标签: functional-programming ocaml

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

我正在做的只是使用Printf.printf。这太麻烦了,因为当我需要一个干净的输出时我必须全部评论它们。

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

感谢

3 个答案:

答案 0 :(得分:8)

您可以使用bolt来实现此目的。这是语法扩展。

顺便说一下。 Ocaml有一个真实的debugger

答案 1 :(得分:4)

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

答案 2 :(得分:2)

您还可以使用ocp-ppx-debug来添加printf一个好的位置,而不是手动添加它们。

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