我在我的Clojure代码中有一个地方想知道调用栈是什么(即:用于到达该点的Clojure函数列表)。我该如何做到这一点?
我在我的Clojure代码中有一个地方想知道调用栈是什么(即:用于到达该点的Clojure函数列表)。我该如何做到这一点?
这不是最好的解决方案,但它很简单,并且应该在核心clojure中起作用:
(try (throw (Exception. "")) (catch Exception e (.printStackTrace e *out*)))
如果你想要查看e的代码而不是打印版本,可以在代码中进行检查。另请参阅当前主分支中的clojure.stacktrace或适用于clojure 1.2的clj-stacktrace。
clojure.repl
包含 pst
。
示例:
(pst (Exception. "") nr-lines