如何在 Clojure 堆栈跟踪中查看函数参数?
How can I see the function arguments in a Clojure stacktrace?
如何在 Clojure 堆栈跟踪中查看传递给函数的参数?
例如,在这个堆栈跟踪中,我如何查看传递给 *get-item
、*normalize-item-ref
、outvalue-of
、happiness
和 nodestr
的参数?很高兴看到程序是如何得到错误的,而不仅仅是错误。
ERROR in (this-test) (workspace.clj:330)
Uncaught exception, not in assertion.
expected: nil
actual: java.lang.AssertionError: Assert failed: (item-or-item-ref? item-or-item-ref)
at fargish.workspace$_STAR_get_item.invokeStatic (workspace.clj:330)
fargish.workspace$_STAR_get_item.invoke (workspace.clj:330)
fargish.workspace$_STAR_normalize_item_ref.invokeStatic (workspace.clj:365)
fargish.workspace$_STAR_normalize_item_ref.invoke (workspace.clj:360)
fargish.workspace$outvalue_of.invokeStatic (workspace.clj:815)
fargish.workspace$outvalue_of.invoke (workspace.clj:810)
fargish.workspace$outvalue_of.invokeStatic (workspace.clj:812)
fargish.workspace$outvalue_of.invoke (workspace.clj:810)
fargish.workspace$happiness.invokeStatic (workspace.clj:904)
fargish.workspace$happiness.invoke (workspace.clj:902)
fargish.workspace$nodestr.invokeStatic (workspace.clj:1039)
fargish.workspace$nodestr.invoke (workspace.clj:1035)
. . .
堆栈跟踪中不存在该信息。
您可以在您感兴趣的命名空间上 运行 sayid (http://bpiel.github.io/sayid/)。它将跟踪所有函数调用和参数。
我认为这对 development/debugging 最有用。对于生产,上面 amalloy 的 try-catch 推荐可能是最好的。
如何在 Clojure 堆栈跟踪中查看传递给函数的参数?
例如,在这个堆栈跟踪中,我如何查看传递给 *get-item
、*normalize-item-ref
、outvalue-of
、happiness
和 nodestr
的参数?很高兴看到程序是如何得到错误的,而不仅仅是错误。
ERROR in (this-test) (workspace.clj:330)
Uncaught exception, not in assertion.
expected: nil
actual: java.lang.AssertionError: Assert failed: (item-or-item-ref? item-or-item-ref)
at fargish.workspace$_STAR_get_item.invokeStatic (workspace.clj:330)
fargish.workspace$_STAR_get_item.invoke (workspace.clj:330)
fargish.workspace$_STAR_normalize_item_ref.invokeStatic (workspace.clj:365)
fargish.workspace$_STAR_normalize_item_ref.invoke (workspace.clj:360)
fargish.workspace$outvalue_of.invokeStatic (workspace.clj:815)
fargish.workspace$outvalue_of.invoke (workspace.clj:810)
fargish.workspace$outvalue_of.invokeStatic (workspace.clj:812)
fargish.workspace$outvalue_of.invoke (workspace.clj:810)
fargish.workspace$happiness.invokeStatic (workspace.clj:904)
fargish.workspace$happiness.invoke (workspace.clj:902)
fargish.workspace$nodestr.invokeStatic (workspace.clj:1039)
fargish.workspace$nodestr.invoke (workspace.clj:1035)
. . .
堆栈跟踪中不存在该信息。
您可以在您感兴趣的命名空间上 运行 sayid (http://bpiel.github.io/sayid/)。它将跟踪所有函数调用和参数。
我认为这对 development/debugging 最有用。对于生产,上面 amalloy 的 try-catch 推荐可能是最好的。