我知道 OCaml 调试工具(首先使用 ocamlc -g <file>
编译,然后运行 ocamldebug <output>
)以及顶层的函数调用跟踪功能( both covered here )。但是,我似乎找不到任何关于使用 dune 的调试版本的信息。 .这可能吗?有人可以指出我正确的方向吗?谢谢!
最佳答案
-g
标志默认存在于所有构建配置文件中,因此简短的回答是您无需执行任何操作。作为专业提示,如果您想查看默认设置的标志,请使用
dune printenv .
或对于给定的构建配置文件,例如,对于 release
,
dune printenv --profile release .
在一般情况下,使用 flags
、ocamlc_flags
和 ocamlopt_flags
字段添加标志,这些字段由 env
接受code>、library
、executable
和 executables
节并具有相应的范围。如果您希望您的标志在全局范围内应用,您需要将相应的标志字段添加到 env
节,例如,
(env
(release
(ocamlopt_flags (:standard -O3))))
这里 :standard
扩展为标准标志集。
还有一点值得了解的是,OCaml 原生可执行文件(使用 ocamlopt
编译为机器码的可执行文件)不适用于 ocamldebug
。您可以使用 OCaml 非常支持的 gdb
或使用字节码可执行文件。
关于debugging - 沙丘调试 - OCaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65133899/