Как использовать ocamldebug в проекте "Батареи включены"?
У меня есть простой проект ocamlbuild, который использует батареи, включая синтаксические расширения.
_tags
:
<*>: pkg_batteries,pkg_threads,pkg_batteries.syntax,syntax_camlp4o
something.ml
:
open Batteries
…
let () = …
Он построен для отладки с помощью:
$ ocamlbuild something.d.byte
$ ocamldebug something.d.byte
Попытка использовать print
команда в ocamldebug
Однако выдает следующую ошибку:
(ocd) print x
Cannot find module Batteries.
Кажется, это происходит только при отладке в области, где Batteries
является open
редактор
В чем причина этой ошибки? Как можно обойти?
1 ответ
Решение
Вы должны сделать, чтобы аккумуляторы были доступны для отладчика; dir
командование и -I
параметры командной строки позволяют это. К сожалению, это сложнее, чем должно быть, потому что ocamlfind
не поддерживается ocamldebug
, Но вы можете сделать это:
$ ocamldebug `ocamlfind query -recursive -i-format batteries` -I _build something.d.byte
Это пройдет последовательность -I
варианты ocamldebug
предоставить пути включения, чтобы найти соответствующие модули.