2013-05-09 11 views
6

Czy mogę się dowiedzieć, jak doświadczony programista OCaml debuguje swój kod?Jak poprawnie debugować kod OCaml?

To, co robię, to po prostu użycie Printf.printf. Jest to zbyt kłopotliwe, ponieważ muszę je wszystkie skomentować, gdy potrzebuję czystej wydajności.

Jak powinienem lepiej kontrolować ten proces debugowania? specjalna adnotacja, aby włączyć lub wyłączyć te logging?

dzięki

Odpowiedz

7

Można użyć bolt do tego celu. To rozszerzenie składni.

Przy okazji. Ocaml ma prawdziwe debugger.

4

Istnieje funkcja debuggera OCaml, której możesz nie znać, która nie jest powszechnie używana przy programowaniu stanowym i nazywa się podróż w czasie. Zobacz rozdział 16.4.4. Zasadniczo, ponieważ wszystkie informacje od kroku do kroku są przechowywane na stosie, zachowując zmiany związane z każdym krokiem zapisanym podczas przetwarzania, można przejść przez zmiany w czasie, aby zobaczyć wartości podczas tego kroku. Pomyśl o tym, uruchamiając program po zalogowaniu wszystkich wartości w każdym kroku do magazynu danych, a następnie indeksowaniu do tego magazynu danych na podstawie numeru kroku, aby zobaczyć wartości w tym kroku.

2

Możesz również użyć ocp-ppx-debug, który doda printf z dobrą lokalizacją zamiast dodawać je ręcznie.

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