В чем разница между стеком вызовов и трассировкой стека?
В чем разница между терминами "Стек вызовов" и "Трассировка стека"?
Ответы
Ответ 1
Стек вызова обычно представляет собой "текущий стек операций", то есть во время его запуска.
Трассировка стека обычно является копией стека вызовов, который регистрируется при некотором сбое, например. исключение.
Другими словами, во время отладки вы будете смотреть на текущий стек вызовов, но когда вы смотрите на журналы, вы получите трассировку стека. По крайней мере, моя интерпретация терминов:)
Ответ 2
Стек вызовов - это структура данных, в которой хранится информация об активных подпрограммах в запущенной программе.
Трассировка стека представляет собой стек вызовов.
Ответ 3
Я думаю, что Википедия неплохо справляется с различием между ними:
стек вызовов представляет собой структуру данных стека, которая хранит информацию об активных подпрограммах компьютерной программы
Трассировка стека представляет собой отчет о действительных кадрах стека в определенный момент времени во время выполнения программы.
Другими словами, стек вызовов представляет собой фактическую структуру данных в памяти, а трассировка стека - это моментальный снимок указанной структуры данных.