如何在Clojure中获取调用堆栈?

11

我在我的Clojure代码中有一个地方想知道调用栈是什么(即:用于到达该点的Clojure函数列表)。我该如何做到这一点?

2个回答

14

这不是最好的解决方案,但它很简单,并且应该在核心clojure中起作用:

(try (throw (Exception. "")) (catch Exception e (.printStackTrace e *out*)))

如果你想要查看e的代码而不是打印版本,可以在代码中进行检查。另请参阅当前主分支中的clojure.stacktrace或适用于clojure 1.2的clj-stacktrace。


0

clojure.repl 包含 pst

示例:

(pst (Exception. "") nr-lines

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接