Траса стекуТраса стеку викликів (англ. stack trace або ж англ. stack backtrace) — це звіт про активні стекові кадри (активаційні записи) в певній точці програми під час її виконання. Найбільш часто застосовується при інтерактивному та післякраховому зневадженні. Траса стеку може виводитися користувачу програми як частина повідомлення про помилку, яку користувач може передати програмісту. Траса стеку дозволяє відслідкувати послідовність вкладених викликів функцій до точки де траса стеку генерується. При післякраховому сценарію до точки функції, де відбувся збій. Деякі виклики специфічних функцій у трасі стеку не відображаються (sibling function). Приклад на PythonДля прикладу наступна програма на Python містить помилку def a():
b()
def b():
c()
def c():
error()
a()
Запуск програми під стандартним інтерпретатором Python породжує наступне повідомлення про помилку: Traceback (most recent call last): File "tb.py", line 10, in <module> a() File "tb.py", line 2, in a b() File "tb.py", line 5, in b c() File "tb.py", line 8, in c error() NameError: global name 'error' is not defined В трасі стеку вказано, що помилка відбулась у функції з назвою Підтримка мовами програмуванняБільшість мов програмування, включаючи Java та C# мають вбудовану підтримку для отримання поточної траси стеку через системні виклики. C++ не має вбудованої підтримки для цього, проте його можна отримати, наприклад, з допомогою відповідних бібліотек (stacktrace [Архівовано 30 травня 2013 у Wayback Machine.]). В java найчастіше доводиться працювати з трасою стеку при обробці винятків[1]. Див. такожДжерела
|