Трассировка и отладка в OCaml - PullRequest
8 голосов
/ 10 ноября 2011

Что вы используете для трассировки и отладки в OCaml?

Для отладки я попробовал ocamldebug и плагин Emacs.

Для трассировки я хочу иметь возможность печатать конструктор данных каждой переменной. Пример использования Camlp4 показан здесь: http://caml.inria.fr/pub/docs/tutorial-camlp4/tutorial007.html#toc52

   type colour = Red | Green | Blue
   let print_colour =
     function
       Red -> print_string "Red"
     | Green -> print_string "Green"
     | Blue -> print_string "Blue"

1 Ответ

9 голосов
/ 19 февраля 2012

ocamldebug отлично работает, когда вы можете использовать байт-код.

Если вы хотите отлаживать приложение с собственным кодом, есть исправление от Thomas gazagnaire на Mantis, которое позволяет перейти на следующую строкупо линии в программе OCaml с использованием GDB.Части этого патча должны быть интегрированы в следующую версию OCaml (3.13 или 4.00).

В настоящее время, однако, нет способа напечатать значения OCaml, но есть другой патч, использующий GADT для определения универсальной функции принтера для любого типа.

...