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

发布于 2024-11-11 15:11:39 字数 589 浏览 6 评论 0原文

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

_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 打开的范围内进行调试时才会发生。

出现这个错误的原因是什么?怎么可能解决呢?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

皇甫轩 2024-11-18 15:11:39

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

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

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文