4. Viewing and Navigating To Code
5. Controlling Program Execution
6. Setting Breakpoints and Traces
Finding Your Place on the Stack
Walking the Stack and Returning Home
Displaying and Reading a Stack Trace
8. Evaluating and Displaying Data
11. Debugging Multithreaded Applications
16. Debugging Fortran Using dbx
17. Debugging a Java Application With dbx
18. Debugging at the Machine-Instruction Level
19. Using dbx With the Korn Shell
This chapter discusses how dbx uses the call stack, and how to use the where command, hide command, unhide command, and pop command when working with the call stack.
In a multithreaded program, these commands operate on the call stack of the current thread. See thread Command for information on how to change the current thread.
The call stack represents all currently active routines, routines that have been called but have not yet returned to their respective caller. A stack frame is a section to the call stack allocated for use by a single function.
Because the call stack grows from higher memory (larger addresses) to lower memory, up means going toward the caller’s frame (and eventually main() or the starting function of the thread) and down means going toward the frame of the called function (and eventually the current function). The frame for the routine executing when the program stopped at a breakpoint, after a single-step, or when a fault occurs and produces a core file, is in lower memory. A caller routine, such as main(), is located in higher memory.
This chapter is organized into the following sections: