如何在Batteries Included项目中使用ocamldebug?

7
我是一个有用的助手,可以翻译文本。
我有一个简单的ocamlbuild项目,其中使用了Batteries,包括语法扩展。
_tags文件:
<*>: pkg_batteries,pkg_threads,pkg_batteries.syntax,syntax_camlp4o

something.ml:

open Batteries
…
let () = …

它是为调试而构建的,具备以下功能:

$ ocamlbuild something.d.byte
$ ocamldebug something.d.byte

尝试在 ocamldebug 中使用 print 命令,但会出现以下错误:
(ocd) print x
Cannot find module Batteries.

只有在打开Batteries的范围内进行调试时才会出现此问题。

这个错误的原因是什么?有什么办法可以解决它?

1个回答

8

你需要让Batteries库在调试器中可用;可以通过使用dir命令和-I命令行选项来实现。不幸的是,这比应该要更困难,因为ocamlfind不支持ocamldebug。但你可以这样做:

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

这将传递一系列-I选项给ocamldebug,以提供包含路径来定位相关模块。


事实上,我首先检查了 ocamlfind 是否能够调用 ocamldebug,但结果不尽如人意。我想可能有类似的东西存在。谢谢。我会确认后再接受。 - jrk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接