【发布时间】:2021-08-16 17:18:27
【问题描述】:
当我编译以下模块时:
-module(x).
-export([inp/0]).
f(X) ->
g(X).
g(X) ->
error(X).
inp() ->
f(123).
然后评估 x:inp() 我得到以下输出:
[{x,g,1,[{file,"x.erl"},{line,8}]},
{erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,689}]},
{erl_eval,try_clauses,8,[{file,"erl_eval.erl"},{line,919}]},
{shell,exprs,7,[{file,"shell.erl"},{line,686}]},
{shell,eval_exprs,7,[{file,"shell.erl"},{line,642}]},
{shell,eval_loop,3,[{file,"shell.erl"},{line,627}]}]
对f 和inp 的调用去哪儿了?这种行为使得跟踪我的案例中的错误原因变得更加困难,我如何才能获得完整的堆栈跟踪?
我正在使用 OTP24
【问题讨论】:
-
this 会回答您的问题吗?这是一个关于 Elixir 的问题,但答案也适用于 Erlang。
标签: erlang stack-trace inlining