If a function is recursive, there can be many frames for the same function. The frame for the function in which execution is actually occurring is called the innermost frame. This is the most recently created of all the stack frames that still exist. Inside your program, stack frames are identified by their addresses. Usually this address is kept in a register called the frame pointer register while execution is going on in that frame.
Some compilers allow functions to be compiled so that they operate without stack frames.
This is occasionally done with heavily used library functions to save the frame setup time. Backtraces A backtrace is a summary of how your program got where it is. You can stop the backtrace at any time by typing the system interrupt character, normally C-c . Each line in the backtrace shows the frame number and the function name. The backtrace also shows the source file name and line number, as well as the arguments to the function.