スマートではないですが、以下のようにして表示できます。
#!/usr/bin/env elixir defmodule Bar do def bar do try do raise
"oops" rescue _ -> IO.inspect System.stacktrace end end end
defmodule Foo do def foo do Bar.bar end end
Foo.foo
[{Bar, :bar, 0, [file: 'test.exs', line: 4]}, {:elixir_compiler,
:dispatch_loaded, 6, [file: 'src/elixir_compiler.erl', line:
126]}, {:elixir_lexical, :run, 3, [file:
'src/elixir_lexical.erl', line: 16]}, {:elixir_compiler, :quoted,
3, [file: 'src/elixir_compiler.erl', line: 30]}, {Code,
:require_file, 2, [file: 'lib/code.ex', line: 363]},
{Mix.Tasks.Run, :run, 1, [file: 'lib/mix/tasks/run.ex', line:
68]}, {Mix.CLI, :run_task, 2, [file: 'lib/mix/cli.ex', line:
58]}, {:elixir_compiler, :dispatch_loaded, 6, [file:
'src/elixir_compiler.erl', line: 126]}]
Exception.formatを使うと、もうちょいきれいになります。
try do raise …
[さらに読む]