Как использовать 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 предоставить пути включения, чтобы найти соответствующие модули.

Другие вопросы по тегам