stack trace
A stack trace egy hiba pillanatában kiírt lista: megmutatja, milyen egymásba ágyazott lépéseken át jutott el a program addig a pontig, ahol a hiba történt.
Érthetően
Képzeld el, hogy főzés közben odaég a rántás. Hogy megértsd, mi történt, visszafelé követed a lépéseket: a rántást a leveshez készítetted, a levest az ebédhez, az ebédet a vendégek miatt. A stack trace ugyanezt teszi egy programmal: megmutatja, melyik feladat melyik másikat indította el, egészen a hiba helyéig.
A programok apró, egymást hívogató részekből, úgynevezett függvényekből állnak. Amikor az egyik hibára fut, a rendszer kiírja a teljes hívási láncot: fájlneveket, sorszámokat és a hiba fajtáját. Ez a furcsa, sokszor ijesztően hosszú szöveg a stack trace.
A sima hibaüzenet csak annyit közöl, hogy baj van. A stack trace azt is megmutatja, hol történt a hiba, és milyen úton jutott oda a program. Ezért ez a fejlesztők és a kódoló agentek első számú nyoma a hibakeresésben: az agent elolvassa, megkeresi a megjelölt sort, és ott próbálja kijavítani a kódot.
Hogyan működik
- Futás közben a program egy „veremben” (angolul stack) tartja nyilván, éppen melyik függvényben jár, és azt honnan hívták meg. Minden új hívás a verem tetejére kerül, mint egy újabb tányér a tányérhalmon.
- Amikor egy függvény végez, lekerül a verem tetejéről, és a program oda tér vissza, ahonnan a hívás érkezett.
- Ha hiba történik, a futtatókörnyezet rögzíti a verem pillanatnyi állapotát. Minden szintről feljegyzi a függvény nevét, és ha ez az információ elérhető, a fájlt és a sor számát is.
- Ezt a listát a hiba típusával és rövid leírásával együtt kiírja a képernyőre vagy egy naplófájlba. A hiba tényleges helye nyelvtől függően a lista elején (például Java) vagy a végén (például Python) áll.
- A fejlesztő vagy a kódoló agent végigolvassa a listát, megkeresi benne a saját kód első érintett sorát, és onnan indul a javítás.
Példa a mindennapokból
Megkérsz egy AI-asszisztenst, hogy írjon rövid programot a számláid összesítésére, de futtatáskor egy tucat sornyi angol szöveg jelenik meg „Traceback” felirattal. Ha ezt egy az egyben visszamásolod a beszélgetésbe, az asszisztens kiolvassa belőle, melyik sorban és miért akadt el a program, és javított változatot ad.
Kit érint
Gyakori félreértés
Korlátok és kockázatok
- A stack trace azt mutatja meg, hol bukott ki a hiba, nem feltétlenül azt, hol keletkezett: a valódi ok lehet egy korábbi lépésben vagy hibás bemeneti adatban.
- Érzékeny adatokat is tartalmazhat (fájlútvonalakat, felhasználóneveket, belső rendszerneveket), ezért nézd át, mielőtt nyilvános fórumra vagy külső AI-szolgáltatásba másolod.
- Egy kódoló agent könnyen csak a tünetet kezeli: eltünteti a hibaüzenetet, de a mögöttes logikai hiba megmarad. A javítást ezért mindig ellenőrizni kell.
- Párhuzamosan futó vagy erősen optimalizált programoknál a lista hiányos vagy félrevezető lehet, mert a hívási lánc egy része nem látszik benne.
Hasonló, de nem ugyanaz
- hibaüzenet – A hibaüzenet röviden megmondja, mi a baj. A stack trace azt az útvonalat is megmutatja, amelyen a program a hibához eljutott.
- naplófájl (log) – A napló a program működésének folyamatos krónikája. A stack trace egyetlen hibapillanat lenyomata, amely gyakran a naplóba is bekerül.
- memóriakép (core dump) – A memóriakép a program teljes memóriatartalmát menti el az összeomláskor. A stack trace csak a hívási láncot mutatja meg olvasható formában. Hibakereső programmal a memóriaképből utólag is előállítható.
Kapcsolódó fogalmak
hibakeresés, szoftverfejlesztés
–
hibaüzenet, hívási verem, kivétel, naplófájl, kódoló agent, programhiba, tesztelés, terminál
Röviden a története
A stack trace alapja a verem (stack) nevű adatszerkezet. A visszatérési címek veremszerű tárolását Alan Turing már 1946-ban leírta. Friedrich L. Bauer és Klaus Samelson német matematikusok 1957-ben nyújtottak be szabadalmat a veremelvre, eredetileg kifejezések kiértékelésére. A hívási lánc kiíratása később a programnyelvek hibakezelésének természetes részévé vált. Ma a legtöbb elterjedt nyelv beépítve kínálja; C-ben és C++-ban viszont jellemzően hibakereső program vagy külön könyvtár kell hozzá.
Hol tart most
Évtizedek óta a programozás alapeszköze. 2026 végére a kódoló agentek is rutinszerűen olvassák: lefuttatják a kódot, értelmezik a stack trace-t, és önállóan próbálkoznak a javítással.
Más nevei
stack trace · stacktrace · veremkiíratás · hívási lánc · traceback · backtrace · stack backtrace
Források
- Wikipedia: Stack trace
- Python dokumentáció: traceback — Print or retrieve a stack traceback
- MDN Web Docs: Error.prototype.stack
A szócikk gépi szerkesztéssel készült és gépi szakmai lektoráláson ment át; a „hírekben” rész az Agent Age sztorijaiból automatikusan frissül.