`
wudixiaotie
  • 浏览: 141298 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 

6
1
分享到:
评论

相关推荐

    erlang 入门练习

    Erlang还提供了丰富的标准库,如`io`模块用于输入输出,`lists`模块提供了各种列表操作,`erlang`模块包含了Erlang的内置函数等。`client.erl`可能会使用这些库来实现功能,比如`io:format/2`用于打印信息,`lists:...

    erlang-ffi:与Haskell的Erlang节点通信

    发给Erlang的消息只是Haskell中的函数调用,而来自Erlang的消息则传递到MVars。 简短的例子 我们通过一个简单的工作示例介绍erlang库。 我们将编写一个简单的“ Hello,Erlang!”程序。 让我们从Haskell代码开始...

    flame_prof:用于Erlang的热图和火焰图采样分析器

    它使用调用堆栈采样方法,而不是尝试测量每个单独的调用。 因此,它不需要使用Erlang跟踪(尽管对于某些可选功能它可以使用跟踪)。 它保留呼叫过程信息,包括过程状态,内存使用情况,消息队列长度和垃圾收集信息...

    Erlang中遍历取出某个位置的最大值代码

    这使得Erlang可以有效地处理大数据集而不会出现栈溢出的问题。 在实际应用中,列表可能非常大,包含数百万个元素。在这种情况下,即使***g的列表操作是尾递归优化的,我们仍然可能需要考虑性能问题。如果性能成为...

    rexbug:Redbug Erlang跟踪调试器的瘦Elixir包装器

    1. **配置跟踪**: `rexbug`允许开发者自定义跟踪模式,可以指定要监视的模块、函数、调用参数,以及要收集的数据类型,如函数返回值、堆栈跟踪等。 2. **简单API**: 通过Elixir友好的API,开发者可以轻松地启动和...

    各种程序语言的Hello_World程序

    - `-export`指定可外部调用的函数。 #### Forth ```forth ." Hello World!" CR ``` **解析:** - Forth是一种堆栈式编程语言。 - `." "`用于输出字符串。 - `CR`用于换行。 #### Fortran ```fortran program Hello...

    Algorithms A Functional Programming Approach

    4. 尾递归优化(Tail recursion optimization):在递归函数的尾部位置进行递归调用,使得编译器或解释器可以优化递归调用,避免栈溢出。 5. 闭包(Closures):闭包是指能够捕获自由变量的函数。自由变量是指在...

    函数与函数式编程

    在函数式编程中,程序是由纯函数组成的,纯函数是指给定相同的输入,总是返回相同输出的函数,而且不产生任何副作用。这样的特性使得函数式编程在处理并行计算、错误处理以及维护代码一致性方面具有优势。 函数式...

Global site tag (gtag.js) - Google Analytics