Logo
Unionpedia
Communication
Get it on Google Play
New! Download Unionpedia on your Android™ device!
Free
Faster access than browser!
 

Call stack

Index Call stack

In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. [1]

67 relations: Abstraction (computer science), Ada (programming language), Application binary interface, Assembly language, Automatic variable, Buffer overflow, Burroughs large systems, C++, Calling convention, Common Lisp, Compiler, Computer program, Computer science, Continuation, Cooperative multitasking, Coroutine, Crash (computing), Data structure, Exploit (computer security), Floating-point arithmetic, Forth (programming language), Function prologue, GNU Debugger, Goto, High-level programming language, Instance (computer science), Instruction set architecture, ISSRE, Local variable, Machine-dependent software, Memory address, Memory management, Nested function, Object (computer science), Object-oriented programming, Operating system, Overhead (computing), Parameter (computer programming), Parent pointer tree, Pascal (programming language), Pointer (computer programming), Process (computing), Processor register, Programming language, Recursion (computer science), Reentrancy (computing), Return statement, Return-oriented programming, Return-to-libc attack, Reverse Polish notation, ..., Scheme (programming language), Setcontext, Setjmp.h, Signal (IPC), Software, Stack (abstract data type), Stack buffer overflow, Stack machine, Stack overflow, Stack-based memory allocation, Subroutine, Task (computing), This (computer programming), Thread (computing), Thread safety, Thunk, W^X. Expand index (17 more) »

Abstraction (computer science)

In software engineering and computer science, abstraction is.

New!!: Call stack and Abstraction (computer science) · See more »

Ada (programming language)

Ada is a structured, statically typed, imperative, and object-oriented high-level computer programming language, extended from Pascal and other languages.

New!!: Call stack and Ada (programming language) · See more »

Application binary interface

In computer software, an application binary interface (ABI) is an interface between two binary program modules; often, one of these modules is a library or operating system facility, and the other is a program that is being run by a user.

New!!: Call stack and Application binary interface · See more »

Assembly language

An assembly (or assembler) language, often abbreviated asm, is a low-level programming language, in which there is a very strong (but often not one-to-one) correspondence between the assembly program statements and the architecture's machine code instructions.

New!!: Call stack and Assembly language · See more »

Automatic variable

In computer programming, an automatic variable is a local variable which is allocated and deallocated automatically when program flow enters and leaves the variable's scope.

New!!: Call stack and Automatic variable · See more »

Buffer overflow

In information security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory locations.

New!!: Call stack and Buffer overflow · See more »

Burroughs large systems

In the 1970s, Burroughs Corporation was organized into three divisions with very different product line architectures for high-end, mid-range, and entry-level business computer systems.

New!!: Call stack and Burroughs large systems · See more »

C++

C++ ("see plus plus") is a general-purpose programming language.

New!!: Call stack and C++ · See more »

Calling convention

In computer science, a calling convention is an implementation-level (low-level) scheme for how subroutines receive parameters from their caller and how they return a result.

New!!: Call stack and Calling convention · See more »

Common Lisp

Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).

New!!: Call stack and Common Lisp · See more »

Compiler

A compiler is computer software that transforms computer code written in one programming language (the source language) into another programming language (the target language).

New!!: Call stack and Compiler · See more »

Computer program

A computer program is a collection of instructions for performing a specific task that is designed to solve a specific class of problems.

New!!: Call stack and Computer program · See more »

Computer science

Computer science deals with the theoretical foundations of information and computation, together with practical techniques for the implementation and application of these foundations.

New!!: Call stack and Computer science · See more »

Continuation

In computer science and computer programming, a continuation is an abstract representation of the control state of a computer program.

New!!: Call stack and Continuation · See more »

Cooperative multitasking

Cooperative multitasking, also known as non-preemptive multitasking, is a style of computer multitasking in which the operating system never initiates a context switch from a running process to another process.

New!!: Call stack and Cooperative multitasking · See more »

Coroutine

Coroutines are computer-program components that generalize subroutines for non-preemptive multitasking, by allowing multiple entry points for suspending and resuming execution at certain locations.

New!!: Call stack and Coroutine · See more »

Crash (computing)

In computing, a crash (or system crash) occurs when a computer program, such as a software application or an operating system, stops functioning properly and exits.

New!!: Call stack and Crash (computing) · See more »

Data structure

In computer science, a data structure is a data organization and storage format that enables efficient access and modification.

New!!: Call stack and Data structure · See more »

Exploit (computer security)

An exploit (from the English verb to exploit, meaning "to use something to one’s own advantage") is a piece of software, a chunk of data, or a sequence of commands that takes advantage of a bug or vulnerability to cause unintended or unanticipated behavior to occur on computer software, hardware, or something electronic (usually computerized).

New!!: Call stack and Exploit (computer security) · See more »

Floating-point arithmetic

In computing, floating-point arithmetic is arithmetic using formulaic representation of real numbers as an approximation so as to support a trade-off between range and precision.

New!!: Call stack and Floating-point arithmetic · See more »

Forth (programming language)

Forth is an imperative stack-based computer programming language and environment originally designed by Charles "Chuck" Moore.

New!!: Call stack and Forth (programming language) · See more »

Function prologue

In assembly language programming, the function prologue is a few lines of code at the beginning of a function, which prepare the stack and registers for use within the function.

New!!: Call stack and Function prologue · See more »

GNU Debugger

The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Go, Java and partially others.

New!!: Call stack and GNU Debugger · See more »

Goto

GoTo (goto, GOTO, GO TO or other case combinations, depending on the programming language) is a statement found in many computer programming languages.

New!!: Call stack and Goto · See more »

High-level programming language

In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer.

New!!: Call stack and High-level programming language · See more »

Instance (computer science)

In object-oriented programming (OOP), an instance is a concrete occurrence of any object, existing usually during the runtime of a computer program.

New!!: Call stack and Instance (computer science) · See more »

Instruction set architecture

An instruction set architecture (ISA) is an abstract model of a computer.

New!!: Call stack and Instruction set architecture · See more »

ISSRE

The International Symposium on Software Reliability Engineering (IEEE ISSRE) is an academic conference with strong industry participation running since 1990 and covering reliability engineering for software.

New!!: Call stack and ISSRE · See more »

Local variable

In computer science, a local variable is a variable that is given local scope.

New!!: Call stack and Local variable · See more »

Machine-dependent software

Machine-dependent software is application programming that runs only on a specific kind of PC.

New!!: Call stack and Machine-dependent software · See more »

Memory address

In computing, a memory address is a reference to a specific memory location used at various levels by software and hardware.

New!!: Call stack and Memory address · See more »

Memory management

Memory management is a form of resource management applied to computer memory.

New!!: Call stack and Memory management · See more »

Nested function

In computer programming, a nested function (or nested procedure or subroutine) is a function which is defined within another function, the enclosing function.

New!!: Call stack and Nested function · See more »

Object (computer science)

In computer science, an object can be a variable, a data structure, a function, or a method, and as such, is a value in memory referenced by an identifier.

New!!: Call stack and Object (computer science) · See more »

Object-oriented programming

Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self").

New!!: Call stack and Object-oriented programming · See more »

Operating system

An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs.

New!!: Call stack and Operating system · See more »

Overhead (computing)

In computer science, overhead is any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to perform a specific task.

New!!: Call stack and Overhead (computing) · See more »

Parameter (computer programming)

In computer programming, a parameter (often called formal parameter or formal argument) is a special kind of variable, used in a subroutine to refer to one of the pieces of data provided as input to the subroutine.

New!!: Call stack and Parameter (computer programming) · See more »

Parent pointer tree

In computer science, an in-tree or parent pointer tree is an -ary tree data structure in which each node has a pointer to its parent node, but no pointers to child nodes.

New!!: Call stack and Parent pointer tree · See more »

Pascal (programming language)

Pascal is an imperative and procedural programming language, which Niklaus Wirth designed in 1968–69 and published in 1970, as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named in honor of the French mathematician, philosopher and physicist Blaise Pascal. Pascal was developed on the pattern of the ALGOL 60 language. Wirth had already developed several improvements to this language as part of the ALGOL X proposals, but these were not accepted and Pascal was developed separately and released in 1970. A derivative known as Object Pascal designed for object-oriented programming was developed in 1985; this was used by Apple Computer and Borland in the late 1980s and later developed into Delphi on the Microsoft Windows platform. Extensions to the Pascal concepts led to the Pascal-like languages Modula-2 and Oberon.

New!!: Call stack and Pascal (programming language) · See more »

Pointer (computer programming)

In computer science, a pointer is a programming language object that stores the memory address of another value located in computer memory.

New!!: Call stack and Pointer (computer programming) · See more »

Process (computing)

In computing, a process is an instance of a computer program that is being executed.

New!!: Call stack and Process (computing) · See more »

Processor register

In computer architecture, a processor register is a quickly accessible location available to a computer's central processing unit (CPU).

New!!: Call stack and Processor register · See more »

Programming language

A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.

New!!: Call stack and Programming language · See more »

Recursion (computer science)

Recursion in computer science is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem (as opposed to iteration).

New!!: Call stack and Recursion (computer science) · See more »

Reentrancy (computing)

In computing, a computer program or subroutine is called reentrant if it can be interrupted in the middle of its execution and then safely be called again ("re-entered") before its previous invocations complete execution.

New!!: Call stack and Reentrancy (computing) · See more »

Return statement

In computer programming, a return statement causes execution to leave the current subroutine and resume at the point in the code immediately after where the subroutine was called, known as its return address.

New!!: Call stack and Return statement · See more »

Return-oriented programming

Return-oriented programming (ROP) is a computer security exploit technique that allows an attacker to execute code in the presence of security defenses such as executable space protection and code signing.

New!!: Call stack and Return-oriented programming · See more »

Return-to-libc attack

A "return-to-libc" attack is a computer security attack usually starting with a buffer overflow in which a subroutine return address on a call stack is replaced by an address of a subroutine that is already present in the process’ executable memory, bypassing the NX bit feature (if present) and ridding the attacker of the need to inject their own code.

New!!: Call stack and Return-to-libc attack · See more »

Reverse Polish notation

Reverse Polish notation (RPN), also known as Polish postfix notation or simply postfix notation, is a mathematical notation in which operators follow their operands, in contrast to Polish notation (PN), in which operators precede their operands.

New!!: Call stack and Reverse Polish notation · See more »

Scheme (programming language)

Scheme is a programming language that supports multiple paradigms, including functional programming and imperative programming, and is one of the two main dialects of Lisp.

New!!: Call stack and Scheme (programming language) · See more »

Setcontext

setcontext is one of a family of C library functions (the others being getcontext, makecontext and swapcontext) used for context control.

New!!: Call stack and Setcontext · See more »

Setjmp.h

setjmp.h is a header defined in the C standard library to provide "non-local jumps": control flow that deviates from the usual subroutine call and return sequence.

New!!: Call stack and Setjmp.h · See more »

Signal (IPC)

Signals are a limited form of inter-process communication (IPC), typically used in Unix, Unix-like, and other POSIX-compliant operating systems.

New!!: Call stack and Signal (IPC) · See more »

Software

Computer software, or simply software, is a generic term that refers to a collection of data or computer instructions that tell the computer how to work, in contrast to the physical hardware from which the system is built, that actually performs the work.

New!!: Call stack and Software · See more »

Stack (abstract data type)

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations.

New!!: Call stack and Stack (abstract data type) · See more »

Stack buffer overflow

In software, a stack buffer overflow or stack buffer overrun occurs when a program writes to a memory address on the program's call stack outside of the intended data structure, which is usually a fixed-length buffer.

New!!: Call stack and Stack buffer overflow · See more »

Stack machine

In computer science, computer engineering and programming language implementations, a stack machine is a type of computer.

New!!: Call stack and Stack machine · See more »

Stack overflow

In software, a stack overflow occurs if the call stack pointer exceeds the stack bound.

New!!: Call stack and Stack overflow · See more »

Stack-based memory allocation

Stacks in computing architectures are regions of memory where data is added or removed in a last-in-first-out (LIFO) manner.

New!!: Call stack and Stack-based memory allocation · See more »

Subroutine

In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.

New!!: Call stack and Subroutine · See more »

Task (computing)

In computing, a task is a unit of execution or a unit of work.

New!!: Call stack and Task (computing) · See more »

This (computer programming)

this, self, and Me are keywords used in some computer programming languages to refer to the object, class, or other entity of which the currently running code is a part.

New!!: Call stack and This (computer programming) · See more »

Thread (computing)

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.

New!!: Call stack and Thread (computing) · See more »

Thread safety

Thread safety is a computer programming concept applicable to multi-threaded code.

New!!: Call stack and Thread safety · See more »

Thunk

In computer programming, a thunk is a subroutine used to inject an additional calculation into another subroutine.

New!!: Call stack and Thunk · See more »

W^X

W^X ("Write XOR Execute"; spoken as W xor X) is a security feature in operating systems and virtual machines.

New!!: Call stack and W^X · See more »

Redirects here:

Access link, Activation frame, Activation record, Call Frame Information, Call Stack, Call chain, Call frame, Call stack inspection, CallStack, Callout area, Callstack, Callstacks, Control stack, Display register, Frame pointer, Framepointer, Function stack, Mark pointer, Outgoing arguments area, Process stack, Return pointer, Run-time stack, Runtime stack, Stack frame, Stack pointer, Stack unwinding.

References

[1] https://en.wikipedia.org/wiki/Call_stack

OutgoingIncoming
Hey! We are on Facebook now! »