假设我:
dune init proj foobar
cd foobar
然后将
test/test_foobar.ml
修改为:
let () = print_endline "First"
let () = print_endline "Second"
let () = print_endline "Third"
我可以用
dune test
执行程序。ocamldebug
或 gdb
可能都可以。
我可以做
gdb --tui --args ./_build/default/test/test_foobar.exe
,但它不显示来源。
我没有看到任何合适的文件可以使用
ocamldebug
启动,例如:
$ ocamldebug ./_build/default/test/test_foobar.ml
OCaml Debugger version 5.2.0
(ocd) r
Loading program... < shortened >/foobar/./_build/default/test/test_foobar.ml is not a bytecode file.
使用 OCaml 5.2.0 和沙丘 3.15.3
将
(modes byte exe)
添加到您的 test/dune
文件中,以构建字节码可执行文件,例如_build/default/test/test_foobar.bc
可以在 ocamldebug
中运行。
test/dune
文件:
(test
(name test_foobar)
(modes byte exe)
)
未解决:如何在
gdb
中运行时让源存在。