使用 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
调试本机程序,但您需要稍微熟悉运行时。
我一直在阅读 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
调试本机程序,但您需要稍微熟悉运行时。