Stack trace (z ang. dosł. ślad stosu) – lista aktywnych ramek stosu w pewnym momencie działania aplikacji. Nazywana także zrzutem stosu.
Programiści często używają listy ramek stosu podczas debugowania. Użytkownicy końcowi mogą czasami zobaczyć listę ramek stosu jako część informacji o błędzie, którą mogą przekazać programiście.
Dzięki liście ramek stosu można śledzić ciąg zagnieżdżonych funkcji. Można także wskazywać miejsce, w którym został rzucony wyjątek. Może pokazywać listę nazw funkcji oraz numery linii prowadzące do miejsca, gdzie lista została wygenerowana, np. miejsca wyrzucenia wyjątku.
Przykład wyświetlenia listy ramek stosu w języku JavaScript:
function foo() { bar(); }
function bar() { baz(); }
function baz() { quux(); }
try {
foo();
} catch(e) {
console.log(e.stack);
}
W przeglądarce Google Chrome wewnątrz narzędzia developer tool wynikiem będzie lista ramek stosu:
ReferenceError: quux is not defined at baz (http://localhost/stacktrace.html:6:18) at bar (http://localhost/stacktrace.html:5:18) at foo (http://localhost/stacktrace.html:4:18) at http://localhost/stacktrace.html:9:5