Debugging with GDB Manual HP WDB v6.3 (5900-2180, August 2012)

number or the address of the frame. With argument, nothing is printed if input
is coming from a command file or a user-defined command.
select-frame The select-frame command allows you to move from one stack frame to
another without printing the frame. This is the silent version of frame.
6.4 Backtraces
A backtrace is a report of the active stack frames instantiated by the execution of a program. It
shows one line per frame, for all the active frames, starting with the currently executing frame
(frame zero), followed by its caller (frame one), and on up the stack.
The following commands are used for backtrace:
backtrace, bt , ba, bac,
where
Print a backtrace of the entire stack: one line per frame for all
frames in the stack.
You can stop the backtrace at any time by typing the system
interrupt character, normally C-c.
backtrace n, bt n Similar, but print only the innermost n frames.
backtrace -n, bt -n Similar, but print only the outermost n frames.
backtrace-other-thread Print backtrace of all stack frames for a thread with stack pointer
SP and program counter PC. This command is useful in cases
where the debugger does not support a user thread package
fully.
The names where and info stack (abbreviated info s) are additional aliases for backtrace.
Each line in the backtrace shows the frame number and the function name. The program counter
value is also shown―unless you use set print address off. The backtrace also shows the
source file name and line number, as well as the arguments to the function. The program counter
value is omitted if it is at the beginning of the code for that line number.
Here is an example of a backtrace. It was made with the command 'bt 3', so it shows the innermost
three frames.
#0 m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8)
at builtin.c:993
#1 0x6e38 in expand_macro (sym=0x2b600) at macro.c:242
#2 0x6840 in expand_token (obs=0x0, t=177664, td=0xf7fffb08)
at macro.c:71
(More stack frames follow...)
The display for frame zero does not begin with a program counter value, indicating that your
program has stopped at the beginning of the code for line 993 of builtin.c.
6.5 Selecting a frame
Most commands for examining the stack and other data in your program work on whichever stack
frame is selected at the moment.
The following commands are used for selecting a stack frame; all of them finish by printing a brief
description of the stack frame selected.
frame n, f n Select frame number n. Recall that frame zero is the innermost (currently executing)
frame, frame one is the frame that called the innermost one, and so on. The
highest-numbered frame is the one for main.
frame addr,
f addr
Select the frame at address addr. This is useful mainly if the chaining of stack
frames has been damaged by a bug, making it impossible for GDB to assign
numbers properly to all frames. In addition, this can be useful when your program
has multiple stacks and switches between them.
56 Examining the Stack