术语“调用堆栈”和“堆栈跟踪”之间有什么区别?
答案 0 :(得分:28)
调用堆栈通常是“当前的操作堆栈” - 即在它运行时。
堆栈跟踪通常是调用堆栈的副本,在某种类型的失败时记录该堆栈跟踪,例如,例外。
换句话说,在您调试时,您将查看当前的调用堆栈 - 但是当您查看日志时,您将获得堆栈跟踪。至少,这是我对术语的解释:)
答案 1 :(得分:11)
调用堆栈是一种数据结构,用于存储有关正在运行的程序中的活动子例程的信息。 堆栈跟踪是调用堆栈的表示。
答案 2 :(得分:10)
我认为维基百科在区分它们方面做得相当不错:
调用堆栈是一种堆栈数据结构,用于存储有关计算机程序的活动子例程的信息
堆栈跟踪是在执行程序期间某个时间点的活动堆栈帧的报告。
换句话说,调用堆栈是内存中的实际数据结构,而堆栈跟踪是所述数据结构的快照。