【问题标题】:Bash debug calling stackBash 调试调用堆栈
【发布时间】:2016-12-13 16:06:34
【问题描述】:

我使用通用过程来捕获和描述错误或异常情况,而不是通常的“2>...”错误构造。

我们的想法是有一个类似这个简化版本的程序:

function debug(){
    echo "Fatal Error: $PWD:$BASH_SOURCE:$LINENO $*"
    ....
    exit 1
}

然后,在这个例子中使用:

[ -z "$PARAMETER" ] && debug The parameter was not provided

问题是:

  • BASH_SOURCE 是运行源。如果过程“调试”是全局的,那么这个想法是显示调用源。
  • LINENO 是执行扩展的行,没有调用地址。

注意:BASH_SOURCE[0] 和 BASH_SOURCE[1] 提供程序源时的“一些帮助”。

这将用于在集中式错误消息程序中通知“用户”错误。这可能包括系统日志和其他日志文件中的帖子。但是,有些消息可能看起来很相似,并且知道在源代码中检测到错误的位置,帮助开发人员。

有什么方法可以在bash上获取调用栈

【问题讨论】:

    标签: linux bash


    【解决方案1】:

    您可以为此使用 bash 内置命令“caller”。 链接 --> http://wiki.bash-hackers.org/commands/builtin/caller

    【讨论】:

      【解决方案2】:

      如果在脚本中添加以下行,系统将显示脚本的执行流程:

      set -x 
      

      【讨论】:

        猜你喜欢
        • 2017-11-04
        • 1970-01-01
        • 2011-12-12
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 2012-01-24
        • 2018-05-08
        相关资源
        最近更新 更多