xumingming / tracer

trace clojure call stack

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

If one traced function's return value is another traced function, in the call stack the return value should be unwraped

xumingming opened this issue · comments

user> (defn a [] "a")
#'user/a
user> (defn b [] a)
#'user/b
user> (trace 'user)
Add user/b to trace list.
Add user/a to trace list.
nil
user> (b)
|- (user/b)
 \=> #<core$trace$fn__931$fn__932 tracer.core$trace$fn__931$fn__932@5d1eb50b>
#<core$trace$fn__931$fn__932 tracer.core$trace$fn__931$fn__932@5d1eb50b>

The problem with the call stack above is that user dont know anything about #<core$trace$fn__931$fn__932 tracer.core$trace$fn__931$fn__932@5d1eb50b> , it should be shown as un-wraped form:
The expected call stack is:

|- (user/b)
 \=> (user/a)
#<core$trace$fn__931$fn__932 tracer.core$trace$fn__931$fn__932@5d1eb50b>

This issue also applies to function parameter value.