2013-11-28 36 views
2

对于学校项目,我使用Jane Street的Core和Async库。我试图用bind Unix系统调用来调试一个问题,所以我运行了ocamldebug myprogram。这将停止时引发异常(Unix.Unix_error),但在反推我得到以下信息:在opam软件包中启用调试

No source file for Async_parallel.Master_process. 

这其中引发错误的文件。是否可以指定opam来构建我使用调试信息安装的软件包,以便我可以使用ocamldebug来检查它们?否则,我还能做些什么来解决这个问题?

在此先感谢!

回答

3

由于4.01 ocaml编译器将使用OCAMLPARAM环境变量来启用某些选项。尝试使用OCAMLPARAM="_,g" opam install ...运行。另请参见https://github.com/ocaml/opam/issues/681

另一方面,使用strace -e bind -f -ttT ./myprogram调试此类问题要容易得多且有效。还有Unix_error存在错误的原因,请不要忽视它。

+0

我找不到有关'OCAMLPARAM'变量的任何文档。你有任何链接? – Antoine

+0

我想它仍然是实验性的,使用风险自负 - https://github.com/ocaml/ocaml/blob/4.02.2/driver/compenv.ml#L144 – ygrek