Debugging 如何将ocamldebug与包含电池的项目一起使用?

Debugging 如何将ocamldebug与包含电池的项目一起使用?,debugging,ocaml,ocamlbuild,ocaml-batteries,Debugging,Ocaml,Ocamlbuild,Ocaml Batteries,我有一个简单的ocamlbuild项目,它使用电池,包括语法扩展 \u标签: <*>: pkg_batteries,pkg_threads,pkg_batteries.syntax,syntax_camlp4o 它是为调试而构建的: $ ocamlbuild something.d.byte $ ocamldebug something.d.byte 但是,尝试使用ocamldebug中的print命令会出现以下错误: (ocd) print x Cannot find modu

我有一个简单的ocamlbuild项目,它使用电池,包括语法扩展

\u标签

<*>: pkg_batteries,pkg_threads,pkg_batteries.syntax,syntax_camlp4o
它是为调试而构建的:

$ ocamlbuild something.d.byte
$ ocamldebug something.d.byte
但是,尝试使用
ocamldebug
中的
print
命令会出现以下错误:

(ocd) print x
Cannot find module Batteries.
只有在
电池
处于
打开状态的范围内进行调试时,才会出现这种情况


这个错误的原因是什么?如何解决此问题?

您必须使调试程序能够使用电池组;
dir
命令和
-I
命令行选项启用此功能。不幸的是,这比应该的困难,因为
ocamlfind
不支持
ocamldebug
。但你可以这样做:

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

这将向
ocamldebug
传递一系列
-I
选项,以提供查找相关模块的包含路径。

事实上,我做的第一件事是检查
ocamldefind
是否具有调用
ocamldebug
的能力,但结果很差。我想这是有道理的。谢谢我会确认,并在收到后接受。
$ ocamldebug `ocamlfind query -recursive -i-format batteries` -I _build something.d.byte