I have a simple ocamlbuild project which uses Batteries, including syntax extensions.
_tags:
<*>: pkg_batteries,pkg_threads,pkg_batteries.syntax,syntax_camlp4o
something.ml:
open Batteries
…
let () = …
It is built for debugging with:
$ ocamlbuild something.d.byte
$ ocamldebug something.d.byte
Attempting to use the print command in ocamldebug, however, gives the following error:
(ocd) print x
Cannot find module Batteries.
This only seems to occur when debugging in a scope where Batteries is opened.
What is the cause of this error? How is it possible to work around?
You have to make the Batteries includes available to the debugger; the dir command and the -I command line options enable this. Unfortunately, this is harder than it should be because ocamlfind does not support ocamldebug. But you can do this:
$ ocamldebug `ocamlfind query -recursive -i-format batteries` -I _build something.d.byte
This will pass a sequence of -I options to ocamldebug to provide the include paths to locate the relevant modules.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With