jrk*_*jrk 7 debugging ocaml ocamlbuild ocaml-batteries
我有一个简单的ocamlbuild项目,它使用Batteries,包括语法扩展.
_tags:
<*>: pkg_batteries,pkg_threads,pkg_batteries.syntax,syntax_camlp4o
Run Code Online (Sandbox Code Playgroud)
something.ml:
open Batteries
…
let () = …
Run Code Online (Sandbox Code Playgroud)
它是为调试而构建的:
$ ocamlbuild something.d.byte
$ ocamldebug something.d.byte
Run Code Online (Sandbox Code Playgroud)
但是,尝试使用该print命令ocamldebug会出现以下错误:
(ocd) print x
Cannot find module Batteries.
Run Code Online (Sandbox Code Playgroud)
这似乎只在一个范围内进行调试时,发生Batteries在open编.
这个错误的原因是什么?如何解决这个问题?
您必须使电池包含在调试器中; 该dir命令和-I命令行选项启用这个功能.不幸的是,这比应该更难,因为ocamlfind不支持ocamldebug.但你可以这样做:
$ ocamldebug `ocamlfind query -recursive -i-format batteries` -I _build something.d.byte
Run Code Online (Sandbox Code Playgroud)
这将传递一系列-I选项以ocamldebug提供包含路径以定位相关模块.
| 归档时间: |
|
| 查看次数: |
779 次 |
| 最近记录: |