Call stack (source code)

= Call stack
{wiki}

A <call stack> stores active procedure calls and the information needed to resume each caller, such as its return location and local variables. A call adds a frame; returning removes that frame and resumes the previous call. When <depth-first search> uses <recursion>, a frame also records where its <adjacency list> scan paused. The active frames describe a <graph path> from the starting <vertex> to the current <vertex>; finished calls have left the <call stack>, although their <vertices> remain marked as discovered.