|
|
- -ifdef(OTP_RELEASE). %% this implies 21 or higher
- -define(EXCEPTION(Class, Reason, Stacktrace), Class:Reason:Stacktrace).
- -define(GET_STACK(Stacktrace), Stacktrace).
- -else.
- -define(EXCEPTION(Class, Reason, _), Class:Reason).
- -define(GET_STACK(_), erlang:get_stacktrace()).
- -endif.
-
- %% 追溯打印函数调用流程
- -define(PRINT_STACK(Tag),
- Stack =
- try
- throw(0)
- catch
- ?EXCEPTION(_Class, _Reason, Stacktrace) ->
- ?GET_STACK(Stacktrace)
- end,
- io:format("tarce tag:~p cur Stacktrace:", [Tag]),
- io:format(utParseStack:parseStack(Stack))
- ).
|