Call Stack和Stack Trace有什么区别?

pen*_*ake 23 .net callstack stack-trace visual-studio

术语"调用堆栈"和"堆栈跟踪"之间有什么区别?

Jon*_*eet 30

调用堆栈通常是"当前的操作堆栈" - 即它正在运行时.

堆栈跟踪通常是调用堆栈的副本,​​在某种类型的失败时记录,例如异常.

换句话说,在您调试时,您将查看当前的调用堆栈 - 但是当您查看日志时,您将获得堆栈跟踪.至少,这是我对条款的解释:)


pio*_*kuc 11

调用堆栈是一种数据结构,用于存储有关正在运行的程序中的活动子例程的信息.堆栈跟踪是调用堆栈的表示.


Chr*_*rna 11

我认为维基百科在区分它们方面做得相当不错:

调用堆栈是堆栈数据结构,其存储关于计算机程序的活动子例程的信息

堆栈跟踪是在程序执行期间的某个时间点的活动堆栈帧的报告.

换句话说,调用堆栈是存储器中的实际数据结构,而堆栈跟踪是所述数据结构的快照.