Как использовать ocamldebug в проекте «Батареи включены»? - PullRequest
7 голосов
/ 02 июня 2011

У меня есть простой проект ocamlbuild, в котором используются батареи, включая синтаксические расширения.

_tags:

<*>: pkg_batteries,pkg_threads,pkg_batteries.syntax,syntax_camlp4o

something.ml:

open Batteries
…
let () = …

Itпостроен для отладки с помощью:

$ ocamlbuild something.d.byte
$ ocamldebug something.d.byte

Попытка использовать команду print в ocamldebug, однако, приводит к следующей ошибке:

(ocd) print x
Cannot find module Batteries.

Это, кажется, происходит, только когдаотладка в области, где Batteries равно open ed.

В чем причина этой ошибки?Как можно обойти?

1 Ответ

8 голосов
/ 03 июня 2011

Вы должны сделать доступными для отладчика аккумуляторы; команда dir и параметры командной строки -I позволяют это сделать. К сожалению, это сложнее, чем должно быть, потому что ocamlfind не поддерживает ocamldebug. Но вы можете сделать это:

$ ocamldebug `ocamlfind query -recursive -i-format batteries` -I _build something.d.byte

Это передаст последовательность -I опций ocamldebug, чтобы указать пути включения для поиска соответствующих модулей.

...