diff options
author | Alexander Sedov <asedov@platbox.com> | 2016-10-13 12:46:18 +0300 |
---|---|---|
committer | Alexander Sedov <asedov@platbox.com> | 2016-10-13 12:48:56 +0300 |
commit | 294fd72f4d8f3beb2e856f085e634549d978b7fd (patch) | |
tree | 75706656ffe3e4c024765e6ab3832ba89cbf92f6 /src | |
parent | cc7141ba419e4f80b0e5da3d24b726679b473552 (diff) |
Get stacktrace only once and as soon as possible. Fixes #1347.
It turns out that pretty-printing uses throw-catch and thus garbages out
the stack trace sometimes, so we should get it only once.
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar3.erl | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/rebar3.erl b/src/rebar3.erl index c665f20..47dc25a 100644 --- a/src/rebar3.erl +++ b/src/rebar3.erl @@ -286,10 +286,11 @@ handle_error({error, Error}) when is_list(Error) -> handle_error(Error) -> %% Nothing should percolate up from rebar_core; %% Dump this error to console - ?CRASHDUMP("Error: ~p~n~p~n~n", [Error, erlang:get_stacktrace()]), + StackTrace = erlang:get_stacktrace(), + ?CRASHDUMP("Error: ~p~n~p~n~n", [Error, StackTrace]), ?ERROR("Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace or consult rebar3.crashdump", []), ?DEBUG("Uncaught error: ~p", [Error]), - case erlang:get_stacktrace() of + case StackTrace of [] -> ok; Trace -> ?DEBUG("Stack trace to the error location:~n~p", [Trace]) |