Траса стеку викликів (англ. 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
В трасі стеку вказано, що помилка відбулась у функції з назвою c
, функція c
була викликана функцією b
, яка в свою чергу викликалася функцією a
, яка в свою чергу була викликана з 10 рядка коду (останнього рядка) програми.
Підтримка мовами програмування
Більшість мов програмування, включаючи Java та C# мають вбудовану підтримку для отримання поточної траси стеку через системні виклики. не має вбудованої підтримки для цього, проте його можна отримати, наприклад, з допомогою відповідних бібліотек (stacktrace [ 30 травня 2013 у Wayback Machine.]).
В java найчастіше доводиться працювати з трасою стеку при обробці винятків.
Див. також
Джерела
- (PDF). Архів оригіналу (PDF) за 2 листопада 2013. Процитовано 2 листопада 2013.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Trasa steku viklikiv angl stack trace abo zh angl stack backtrace ce zvit pro aktivni stekovi kadri aktivacijni zapisi v pevnij tochci programi pid chas yiyi vikonannya Najbilsh chasto zastosovuyetsya pri interaktivnomu ta pislyakrahovomu znevadzhenni Trasa steku mozhe vivoditisya koristuvachu programi yak chastina povidomlennya pro pomilku yaku koristuvach mozhe peredati programistu Trasa steku dozvolyaye vidslidkuvati poslidovnist vkladenih viklikiv funkcij do tochki de trasa steku generuyetsya Pri pislyakrahovomu scenariyu do tochki funkciyi de vidbuvsya zbij Deyaki vikliki specifichnih funkcij u trasi steku ne vidobrazhayutsya sibling function Priklad na PythonDlya prikladu nastupna programa na Python mistit pomilku def a b def b c def c error a Zapusk programi pid standartnim interpretatorom Python porodzhuye nastupne povidomlennya pro pomilku Traceback most recent call last File tb py line 10 in lt module gt 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 V trasi steku vkazano sho pomilka vidbulas u funkciyi z nazvoyu c funkciya c bula viklikana funkciyeyu b yaka v svoyu chergu viklikalasya funkciyeyu a yaka v svoyu chergu bula viklikana z 10 ryadka kodu ostannogo ryadka programi Pidtrimka movami programuvannyaBilshist mov programuvannya vklyuchayuchi Java ta C mayut vbudovanu pidtrimku dlya otrimannya potochnoyi trasi steku cherez sistemni vikliki C ne maye vbudovanoyi pidtrimki dlya cogo prote jogo mozhna otrimati napriklad z dopomogoyu vidpovidnih bibliotek stacktrace 30 travnya 2013 u Wayback Machine V java najchastishe dovoditsya pracyuvati z trasoyu steku pri obrobci vinyatkiv Div takozhTrasuvannya programuvannya Dzherela PDF Arhiv originalu PDF za 2 listopada 2013 Procitovano 2 listopada 2013