Python:Stacktrace与Traceback

gue*_*tli 6 python terminology wording

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

  • 堆栈跟踪
  • 追溯

两者之间有什么区别吗?

sna*_*erb 9

Traceback 是 Python 的惯用术语(例如,traceback 模块),它通常与 stacktrace 互换使用,后者用于其他语言(如 Java)。


Lui*_*ano 8

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

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

将“stacktrace”称为“traceback”是完全错误的:traceback 不是堆栈的跟踪。这是一个反向的堆栈跟踪:“后退”可能就是这个意思。

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

  • 是的,我同意 olejorgenb...甚至 python 自己的“extract_stack”也是从底部开始的。堆栈从下到上推动,从上到下弹出,因此说“在每种意义上”的一种或另一种方式是相当任意的。这是一种过于固执己见和不必要的斗志来表达你想说的话。如果我们真的想变得非常挑剔,那么可能值得指出的是,处理器架构在堆栈是否向较低或较高内存地址增长方面有所不同,所以不,堆栈方向不存在“在每种意义上”。 (2认同)