2013-05-09 8 views
6

Kann ich wissen, wie ein erfahrener OCaml-Entwickler seinen Code debuggt?Wie man OCaml-Code richtig debuggt?

Was ich mache, ist nur mit Printf.printf. Es ist zu beschwerlich, da ich sie alle kommentieren muss, wenn ich eine saubere Ausgabe brauche.

Wie sollte ich diesen Debugging-Prozess besser steuern? spezielle Anmerkung, um diese logging ein- oder auszuschalten?

dank

Antwort

7

Sie können bolt für diesen Zweck verwenden. Es ist eine Syntaxerweiterung.

Btw. Ocaml hat eine echte debugger.

4

Es gibt eine Funktion des OCaml-Debuggers, von der Sie vielleicht nicht wissen, die bei statusbehafteter Programmierung nicht häufig vorkommt und als Zeitreise bezeichnet wird. Siehe Abschnitt 16.4.4. Da alle Informationen von Schritt zu Schritt auf dem Stapel gehalten werden, indem die mit jedem während der Verarbeitung gespeicherten Schritt verbundenen Änderungen beibehalten werden, kann man im Grunde die Änderungen der Zeit durchlaufen, um die Werte während dieses Schritts zu sehen. Stellen Sie sich vor, dass das Programm ausgeführt wird, nachdem alle Werte bei jedem Schritt in einem Datenspeicher protokolliert wurden und dann anhand einer Schrittnummer in diesen Datenspeicher indexiert wurde, um die Werte in diesem Schritt anzuzeigen.

2

Sie können auch ocp-ppx-debug verwenden, die eine printf mit der guten Position hinzufügen, anstatt sie manuell hinzuzufügen.

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