如何调试OCaml沙丘测试程序?

问题描述 投票:0回答:1

假设我:

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

debugging ocaml dune
1个回答
0
投票

(modes byte exe)
添加到您的
test/dune
文件中,以构建字节码可执行文件,例如
_build/default/test/test_foobar.bc
可以在
ocamldebug
中运行。

test/dune
文件:

(test
 (name test_foobar)
 (modes byte exe)
)

未解决:如何在

gdb
中运行时让源存在。

© www.soinside.com 2019 - 2024. All rights reserved.