-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)) ).