术语“调用堆栈”和“堆栈跟踪”之间的区别是什么?
tvmytwxo1#
调用堆栈通常是“当前的操作堆栈”--也就是说,在它运行的时候。堆栈跟踪通常是调用堆栈的副本,它在某种故障(例如异常)时被记录。换句话说,当你调试的时候,你会看到当前的调用栈--但是当你查看日志的时候,你会得到一个栈跟踪。至少,这是我对这些术语的解释:)
w1jd8yoj2#
我认为维基百科在区分它们方面做得相当好:调用堆栈是存储关于计算机程序的活动子例程的信息的堆栈数据结构堆栈跟踪是程序执行期间某个时间点的活动堆栈帧的报告。换句话说,调用堆栈是存储器中的实际数据结构,而堆栈跟踪是所述数据结构的快照。
weylhg0b3#
调用栈是一种数据结构,存储了正在运行的程序中活动子例程的信息。栈跟踪是调用栈的一种表示。
carvr3hs4#
调用堆栈是您在文件中看到的原始执行代码。堆栈跟踪是您在控制台中看到的代码。就像这样简单。
4条答案
按热度按时间tvmytwxo1#
调用堆栈通常是“当前的操作堆栈”--也就是说,在它运行的时候。
堆栈跟踪通常是调用堆栈的副本,它在某种故障(例如异常)时被记录。
换句话说,当你调试的时候,你会看到当前的调用栈--但是当你查看日志的时候,你会得到一个栈跟踪。至少,这是我对这些术语的解释:)
w1jd8yoj2#
我认为维基百科在区分它们方面做得相当好:
调用堆栈是存储关于计算机程序的活动子例程的信息的堆栈数据结构
堆栈跟踪是程序执行期间某个时间点的活动堆栈帧的报告。
换句话说,调用堆栈是存储器中的实际数据结构,而堆栈跟踪是所述数据结构的快照。
weylhg0b3#
调用栈是一种数据结构,存储了正在运行的程序中活动子例程的信息。栈跟踪是调用栈的一种表示。
carvr3hs4#
调用堆栈是您在文件中看到的原始执行代码。堆栈跟踪是您在控制台中看到的代码。就像这样简单。