在OCaml中打印当前调用堆栈

Jon*_*ark 9 ocaml

在OCaml中是否有办法以编程方式获取当前调用堆栈?通过这个,我不是指调试器内部,而是作为函数调用程序内部将打印当前调用堆栈.我想这不应该超出字节码解释器的能力,特别是如果调试符号可用.

Edg*_*ian 7

我来到这个问题寻找同一件事,这是我的解决方案

Printexc.get_callstack 5 |> Printexc.raw_backtrace_to_string

(实际上,这是使自己熟悉新代码库的一种不错的方法)


ygr*_*rek 0

对于本机代码,可以使用 glibc 的backtrace,尽管它可能无法正确打印所有堆栈帧。