Execution flow

The Debugger uses the call stack and stack frames to navigate the program.

The call stack and stack frames

Each time your program performs a function call, information about the call is saved in a block of data called a stack frame. Each frame contains the data associated with one call to one function.

The stack frames are allocated in a region of memory called the call stack. When your program is started, the stack has only one frame, that of the function MAIN. This is the initial frame, also known as the outermost frame. As the debugger executes your program, a new frame is made each time a function is called. When the function returns, the frame for that function call is eliminated.

The Debugger assigns numbers to all existing stack frames, starting with zero for the innermost frame, one for the frame that called it, and so on upward. These numbers do not really exist in your program; they are assigned by the Debugger to allow you to designate stack frames in commands.

Each time your program stops, the Debugger automatically selects the currently executing frame and describes it briefly. You can use the frame command to select a different frame from the current call stack.

Navigate the stack

Use the Up and Down options of the Dubug menu to track function calls.

Up displays the calling function. The Up command advances toward the outermost frame each time it is processed. The Data view display is based on the new context.

Down is the opposite of Up: it returns to the inner frame down to the last executed line.