如何在OCaml中获得堆栈跟踪?

The*_*ema 27 ocaml stack-trace

如果你恰好要求它们,Objective Caml语言只会产生堆栈跟踪 - 对字节码和本机代码有什么要求?

The*_*ema 38

使用-g编译并设置环境变量OCAMLRUNPARAM = b


Tob*_*obu 9

一些Printexc函数允许您以编程方式执行此操作.

  • 特别是`Printexc.record_backtrace true`. (4认同)

小智 5

因为看起来你只能在 unix 上获取异常的跟踪,所以你可以在第二个进程中分叉并抛出异常。这样主流程就可以继续:

export OCAMLRUNPARAM=b
# compile with -g

flush_all(); let r = Unix.fork() in if r == 0 then raise Exit
Run Code Online (Sandbox Code Playgroud)