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

时间:2011-06-02 18:53:12

标签: debugging ocaml ocamlbuild ocaml-batteries

我有一个简单的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.

只有在Batteriesopen的范围内进行调试时才会出现这种情况。

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

1 个答案:

答案 0 :(得分:8)

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

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

这会将-I个选项序列传递给ocamldebug,以提供定位相关模块的包含路径。