3

我一直在阅读 Ocaml 语言和 Jbuilder 的教程。官方教程指出,必须使用带有 ocamlc 的“-g”标志编译 Ocaml 代码,然后才能运行 ocamldebug。

我在 Jbuilder 文档中找不到任何关于调试版本的提及。唯一看起来很接近的部分是https://jbuilder.readthedocs.io/en/latest/jbuild.html#ocaml-flags。但是,即使我添加“-g”作为编译标志..

(executable
 ((name [REDACTED])
  (public_name [REDACTED])
  (libraries ([REDACTED]))
  (flags (:standard -w -9+27-30-32-40@8
                    -safe-string
                    -linkall
                    -g))
  (modules ([REDACTED]))))

..我似乎仍然没有得到调试二进制文件:

$ ocamldebug [REDACTED] 
    OCaml Debugger version 4.04.2

(ocd) r
Loading program... [REDACTED] is not a bytecode file.

难道我做错了什么?如果不是,从 jbuilder 生成调试版本的推荐方法是什么?

4

1 回答 1

4

ocamldebug仅适用于字节码构建。您正在生成本机代码。要创建字节码构建,您可以调用jbuilderusingprog.bc而不是prog.exe.

请注意,这可能不是您想要的:您也可以使用普通的 old 调试本机程序gdb,但您需要对运行时有点熟悉。

于 2017-12-06T08:57:39.120 回答