debugging - 沙丘调试 - OCaml

标签 debugging ocaml ocaml-dune

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

最佳答案

-g 标志默认存在于所有构建配置文件中,因此简短的回答是您无需执行任何操作。作为专业提示,如果您想查看默认设置的标志,请使用

dune printenv .

或对于给定的构建配置文件,例如,对于 release

dune printenv --profile release .

在一般情况下,使用 flagsocamlc_flagsocamlopt_flags 字段添加标志,这些字段由 env 接受code>、libraryexecutableexecutables 节并具有相应的范围。如果您希望您的标志在全局范围内应用,您需要将相应的标志字段添加到 env 节,例如,

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

这里 :standard 扩展为标准标志集。

还有一点值得了解的是,OCaml 原生可执行文件(使用 ocamlopt 编译为机器码的可执行文件)不适用于 ocamldebug。您可以使用 OCaml 非常支持的 gdb 或使用字节码可执行文件。

关于debugging - 沙丘调试 - OCaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65133899/

相关文章:

ocaml - odoc(OCaml 文档生成器)删除 'Stdlib' 前缀

java - 在非 Debug模式下运行 jar

android - 应用程序仅在 Debug模式下崩溃

file-io - 一元文件 I/O

ocaml - 如何使用 ppx 为数据类型派生 to_string 方法

ocaml - OCaml dune 可以构建具有平面目录结构的项目吗?

python - 如果模板丢失,错误消息会更好

javascript - 如何在 Firebug 中调试脚本?

json - Yojson 解析 int64 (ocaml)

list - 使用索引拆分列表