6

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

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

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

谢谢

4

3 回答 3

8

您可以为此目的使用螺栓。这是一个语法扩展。

顺便提一句。Ocaml 有一个真正的调试器

于 2013-05-09T09:13:19.563 回答
4

OCaml 调试器有一个您可能不知道的功能,它在有状态编程中并不常见,称为时间旅行。请参阅第16.4.4节。基本上,由于每一步的所有信息都保存在堆栈中,通过在处理过程中保存与每个步骤相关的更改,人们可以及时浏览更改以查看该步骤中的值。将其视为运行程序,将每个步骤的所有值记录到数据存储中,然后根据步骤编号索引到该数据存储中以查看该步骤的值。

于 2013-05-09T11:27:56.153 回答
2

您还可以使用ocp-ppx-debugwhich 将添加一个printf具有良好位置的位置,而不是手动添加它们。

https://github.com/OCamlPro-Couderc/ocp-ppx-debug
于 2016-06-24T08:48:18.030 回答