Python:堆栈跟踪与回溯

Posted

技术标签:

【中文标题】Python:堆栈跟踪与回溯【英文标题】:Python: Stacktrace vs Traceback 【发布时间】:2018-07-02 08:39:24 【问题描述】:

在 Python 世界中,有两个术语似乎是相等的:

堆栈跟踪 追溯

这两者有区别吗?

【问题讨论】:

【参考方案1】:

Traceback 是 Python 的惯用术语(例如,traceback module),它经常与用于其他语言(如 Java)的 stacktrace 互换使用。

【讨论】:

【参考方案2】:

Stacktrace 是方法调用堆栈的跟踪,与正在执行程序的计算机的内存中完全相同。 所以最近的方法调用在顶部;问题的根源也可能在顶部。 几乎所有编程语言都是这样做的。

Traceback 是 Python “发明”的东西:它与上述相反。因此,要找到问题的根源,您需要从底部开始阅读它,因为这显然更容易被 pythonists 阅读。 为了清楚起见,他们必须指定“最近一次通话”

将“stacktrace”称为“traceback”是完全错误的:traceback 不是堆栈的跟踪。这是一个反向的堆栈跟踪:“返回”可能是这样的。

在堆栈的顶部,在任何意义上,您都有最近的项目。

【讨论】:

以上是关于Python:堆栈跟踪与回溯的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有回溯的情况下退出 Python?

mips体系堆栈回溯分析与实现

Proguard 回溯工具的输出

当回溯从零开始时如何调试崩溃

LinuxBPF学习笔记 - 堆栈跟踪[3]

LinuxBPF学习笔记 - 堆栈跟踪[3]