stack_unwinding

Stack unwinding

Return to Memory management, Heap memory vs. Stack memory, Heap (data structure), Heap or Free store (Heap-based memory allocation), Stack (Call stack - Stack-based memory allocation - Stack (abstract data type) - LIFO (computing) - Stack frame - Stack unwinding), Data Structures

Snippet from Wikipedia: Call stack

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 as part of each call.

Memory management: Dynamic memory management, C language memory management, C dynamic memory allocation - C memory (malloc, realloc, calloc, C free, mimalloc), C++ memory (automatic storage duration, C++ auto, RAII), C# memory, Binary prefixes (kilo-mega-giga-tera-peta-exa-zetta-yotta), Manual memory management, Memory management (operating systems) (Linux memory - UNIX memory, Android memory, IBM mainframe memory, iOS memory, macOS memory, Windows memory), Memory: Memory address, Address space, Memory allocation - Memory allocator, Bash memory, Memory deallocation - Deallocation, Memory debugger (Memwatch, mtrace), Memory diffusion, Dynamic memory, Memory fence (Memory barrier), Memory fragmentation] - Fragmentation, Free list, Garbage collection - Garbage collector, Golang memory, Heap or Free store (Heap-based memory allocation), Stack (Call stack - Stack-based memory allocation - Stack (abstract data type) - LIFO (computing) - Stack frame - Stack unwinding), JVM memory (Java memory - Kotlin memory - Scala memory), Memory leak, Memory model, Memory paging, Out of memory, Page (computer memory), Pointers, C language pointers, Automatic pointer, Pointer swizzling, Memory pool, Memory protection, Physical memory, PowerShell memory, Python memory, RAM, Memory reference (Reference counting - Soft reference - Weak reference), Resource allocation (Resource Acquisition Is Initialization - RAII), Resource leak, Rust memory, Memory segmentation, Memory utilization, Shared memory, Static variable - Automatic variable, Virtual memory, Virtual address space. Memory management. (navbar_memory_management. See also navbar_memory or navbar_data_storage)


© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.


stack_unwinding.txt · Last modified: 2024/05/01 04:38 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki