Is there a function ready to use that prints to stdout/stderr the current stacktrace from the point it is invoked ?
1 Like
Does println(stacktrace())
do what you want?
2 Likes
I sometimes use:
foreach(((ii,frame),)->println("[$ii] $frame"), enumerate(stacktrace()))
Which gives:
julia> foreach(((ii,frame),)->println("[$ii] $frame"), enumerate(stacktrace()))
[1] top-level scope at REPL[15]:1
[2] eval at boot.jl:373 [inlined]
[3] eval_user_input(ast::Any, backend::REPL.REPLBackend) at REPL.jl:150
[4] repl_backend_loop(backend::REPL.REPLBackend) at REPL.jl:241
[5] start_repl_backend(backend::REPL.REPLBackend, consumer::Any) at REPL.jl:226
[6] run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool) at REPL.jl:359
[7] run_repl(repl::REPL.AbstractREPL, consumer::Any) at REPL.jl:346
[8] (::Base.var"#919#921"{Bool, Bool, Bool})(REPL::Module) at client.jl:394
[9] #invokelatest#2 at essentials.jl:716 [inlined]
[10] invokelatest at essentials.jl:714 [inlined]
[11] run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool) at client.jl:379
[12] exec_options(opts::Base.JLOptions) at client.jl:309
[13] _start() at client.jl:495
the numbers are nice for readabilty.
3 Likes