When your program executes, the computer's runtime system places all of the information for a routine on the stack. The information for each routine is called a stack frame. When a routine calls another routine, an additional stack frame is placed on the stack. When the routine finishes executing, the stack frame is removed.

The set of stack frames that exist when a statement executes is called a call stack. The list of the function calls that make up this call stack is called a backtrace.

When statements within your program call routines in the malloc library, MemoryScape records the backtrace the exists. Later, it displays these backtraces. In some cases, an entire report is organized around backtraces.

We provide this information for two reasons:
  • The backtrace shows you the context in which a your program made a memory request. This shows you the execution path your program took, and gives you the context in which the memory request occurred.
  • Organizing reports by backtrace helps you organize the way you look for problems.