Stack trace

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