Stack data structure that stores information about the active subroutines of a computer program
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Call stack" – news · newspapers · books · scholar · JSTOR(September 2012) (Learn how and when to remove this message)
In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This type of stack is also known as an execution stack, program stack, control stack, run-time stack, or machine stack, and is often shortened to simply "the stack". Although maintenance of the call stack is important for the proper functioning of most software, the details are normally hidden and automatic in high-level programming languages. Many computer instruction sets provide special instructions for manipulating stacks.
A call stack is used for several related purposes, but the main reason for having one is to keep track of the point to which each active subroutine should return control when it finishes executing. An active subroutine is one that has been called, but is yet to complete execution, after which control should be handed back to the point of call. Such activations of subroutines may be nested to any level (recursive as a special case), hence the stack structure. For example, if a subroutine DrawSquare calls a subroutine DrawLine from four different places, DrawLine must know where to return when its execution completes. To accomplish this, the address following the instruction that jumps to DrawLine, the return address, is pushed onto the top of the call stack with each call.
stack, program stack, control stack, run-time stack, or machine stack, and is often shortened to simply "the stack". Although maintenance of the call...
In software, a stack overflow occurs if the callstack pointer exceeds the stack bound. The callstack may consist of a limited amount of address space...
to optimize in implementations. Tail calls can be implemented without adding a new stack frame to the callstack. Most of the frame of the current procedure...
In software, a stack buffer overflow or stack buffer overrun occurs when a program writes to a memory address on the program's callstack outside of the...
A stack register is a computer central processor register whose purpose is to keep track of a callstack. On an accumulator-based architecture machine...
In computing, a stack trace (also calledstack backtrace or stack traceback) is a report of the active stack frames at a certain point in time during the...
separate stack that "shadows" the program callstack. In the function prologue, a function stores its return address to both the callstack and the shadow...
result, so a rich set of operations can be computed. In stack machine code (sometimes called p-code), instructions will frequently have only an opcode...
Look up Stack or stack in Wiktionary, the free dictionary. Stack may refer to: Stack Island, an island game reserve in Bass Strait, south-eastern Australia...
memory address on the program's callstack outside of the intended data structure, which is usually a fixed-length buffer. Stack buffer overflow bugs are caused...
systems as well as Microsoft Windows implement a function called alloca for dynamically allocating stack memory in a way similar to the heap-based malloc. A...
stored implicitly in the callstack. Depth-first search is easily implemented via a stack, including recursively (via the callstack), while breadth-first...
exploitation on the callstack. In general, heap exploitation depends on the heap manager used on the target system, while stack exploitation depends...
to the system call in the appropriate processor registers (and maybe on the callstack as well), and also setting a unique system call number for the...
registers or within a stack frame on the callstack. There are design choices for how the tasks of preparing for a function call and restoring the environment...
the callstack the registers other than the status register and program counter. Pop from the callstack the status register. Pop from the callstack the...
depending on the C callstack for its own stack. In practice, Stackless Python uses the C stack, but the stack is cleared between function calls. The most prominent...
Segment, BP is Stack Frame Pointer) points to the address of the top of the stack frame, i.e. the base of the data area in the callstack for the currently...
shorter-lived automatic variables, whose storage is stack allocated and deallocated on the callstack; and in contrast to objects, whose storage is dynamically...