2

我知道 OCaml 调试工具(首先用 编译ocamlc -g <file>,然后运行ocamldebug <output>)以及顶层的函数调用跟踪功能(两者都在这里介绍)。但是,我似乎找不到任何关于使用dune进行调试构建的信息。这可能吗?有人可以指出我正确的方向吗?谢谢!

4

1 回答 1

7

默认情况下,该-g标志存在于所有构建配置文件中,因此简短的回答是您不需要做任何事情。作为专业提示,如果您想查看默认设置的标志,请使用

dune printenv .

或对于给定的建筑轮廓,例如,对于release

dune printenv --profile release .

flags在一般情况下,使用、ocamlc_flags和字段添加标志,这些ocamlopt_flags字段由envlibraryexecutableexecutables节接受并具有相应的范围。如果您希望您的标志在全球范围内应用,您需要将相应的标志字段添加到env节中,例如,

(env
 (release
  (ocamlopt_flags (:standard -O3))))

这里:standard扩展到标准的标志集。

还值得知道的是,OCaml 本机可执行文件(使用 编译为机器代码的可执行文件ocamlopt)不适用于ocamldebug. 您可以使用gdbOCaml 非常支持的任何一个,也可以使用字节码可执行文件。

于 2020-12-03T22:19:58.430 回答