Everything about Stack trace
Report of stack frames during program execution
In computing, a stack trace is a report of the active stack frames at a certain point in time during the execution of a program. When a program is run, memory is often dynamically allocated in two places: the stack and the heap. Memory is continuously allocated on a stack but not on a heap. Stack also refers to a programming construct, thus to differentiate it, this stack is referred to as the program's function call stack. Technically, once a block of memory has been allocated on the stack, it cannot be easily removed as there can be other blocks of memory that were allocated after it. Each time a function is called in a program, a block of memory called an activation record is allocated on top of the call stack. Generally, the activation record stores the function's arguments and local variables. What exactly it contains and how it's laid out is determined by the calling convention. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Stack traceA 5-minute orientation
- Skim a recent paper: A stack-up electrochemical device based on metal-organic framework modified carbon paper for ultra-trace lead and cadmium ions detectionInfluential work since 2022
- Pick up a classic book: Fundamentals of Computer Programming with CSharp Free Book (by Nakov & Co.)The most-reprinted book on the subject
- Read the landmark paper: STAR: Stack Trace Based Automatic Crash Reproduction via Symbolic ExecutionCited 63 times
- Go sideways: Entry pointA closely related topic
- Go sideways: Linkage (software)A closely related topic
📖 Definitions
Noun A hierarchical trace of the function calls made by a program, used in debugging.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
STAR: Stack Trace Based Automatic Crash Reproduction via Symbolic Execution
Biogas trace compounds impact on high-temperature fuel cells short stack performance
Does the fault reside in a stack trace? Assisting crash localization by predicting crashing fault residence
Enhancing supervised bug localization with metadata and stack-trace
Multi-trace post-stack seismic data sparse inversion with nuclear norm constraint
Framework for Analyzing Android I/O Stack Behavior: From Generating the Workload to Analyzing the Trace
TraceSim: An Alignment Method for Computing Stack Trace Similarity
Trace-based derivation of a scalable lock-free stack algorithm
🆕 Influential since 2022
A stack-up electrochemical device based on metal-organic framework modified carbon paper for ultra-trace lead and cadmium ions detection
Abaci-finder: Linux kernel crash classification through stack trace similarity learning
Stack Trace-Based Crash Deduplication with Transformer Adaptation
Compressed Multi-Trace Pre-Stack Inversion with Elastic Half-Norm Regularization
Auditable accountability without an AI act: Australia’s public-sector AI assurance stack and the minimum reviewable trace
📚 Books worth reading
Fundamentals of Computer Programming with CSharp Free Book (by Nakov & Co.)Svetlin Nakov · 2013
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Entry point In computer programming, an entry point is the place in a program where the execution of a program begins, and where the program has access to command…
- Linkage (software) In programming, linkage describes how names can or can not refer to the same entity throughout the whole program or one single translation unit. The static…
- C++ syntax The syntax of C++ is the set of rules defining how a C++ program is written and compiled. C++ syntax is largely inherited from the syntax of its ancestor…
- Exception handling syntax Exception handling syntax is the set of keywords and/or structures provided by a computer programming language to allow exception handling, which separates…
- Template (C++) Templates are a feature of the C++ programming language that allow functions and classes to operate with generic types. This allows a function or class…
- Async/await In computer programming, the async/await pattern is a syntactic feature of many programming languages that allows an asynchronous, non-blocking function…
- Concepts (C++) Concepts in the C++ programming language are type constraints on templates (or generics). Concepts are named Boolean predicates on template parameters…
- Destructor (computer programming) In object-oriented programming, a destructor (sometimes abbreviated dtor) is a method which is invoked mechanically just before the memory of the object…