使用 Jbuilder 创建 Ocaml 代码的调试版本

Creating debug builds of Ocaml code with Jbuilder

我一直在阅读 Ocaml 语言和 Jbuilder 的教程。官方教程说明one must compile Ocaml code using the '-g' flag with ocamlc 才能运行 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 生成调试版本的推荐方法是什么?

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

调用 jbuilder

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