erlang输出调用栈信息

在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。

也可以用这个函数:erlang:get_stacktrace ().平时调用他总是打印出空的数组,

这个函数只能在有异常的情况才能调用:

    try
        throw (asdf)
    catch
        R ->
            io:format ("=============~p~n", [erlang:get_stacktrace()]),
            io:format ("=============~p~n", [R])
    end

 

你可能感兴趣的:(erlang)