Debugging with GDB Manual HP WDB v6.3 (5900-2180, August 2012)
20.4 Frames
Whenever GDB prints a frame, it annotates it. For example, this applies to frames printed when
GDB stops, output from commands such as backtrace or up, etc.
The frame annotation begins with:
^Z^Zframe-begin level address
level-string
where level is the number of the frame (0 is the innermost frame, and other frames have positive
numbers), address is the address of the code executing in that frame, and level-string is a
string designed to convey the level to the user. address is in the form `0x' followed by one or
more lowercase hex digits (note that this does not depend on the language). The frame ends with:
^Z^Zframe-end
Between these annotations is the main body of the frame, which can consist of:
• ^Z^Zfunction-call
function-call-string
where function-call-string is text designed to convey to the user that this frame is
associated with a function call made by GDB to a function in the program being debugged.
• ^Z^Zsignal-handler-caller
signal-handler-caller-string
where signal-handler-caller-string is text designed to convey to the user that this
frame is associated with whatever mechanism is used by this operating system to call a signal
handler (it is the frame which calls the signal handler, not the frame for the signal handler
itself).
• A normal frame.
This can optionally (depending on whether this is thought of as interesting information for the
user to see) begin with
^Z^Zframe-address
address
^Z^Zframe-address-end
separator-string
where address is the address executing in the frame (the same address as in the
frame-begin annotation, but printed in a form which is intended for user consumption|in
particular, the syntax varies depending on the language), and separator-string is a
string intended to separate this address from what follows for the user's benefit.
Then comes
^Z^Zframe-function-name
function-name
^Z^Zframe-args
arguments
where function-name is the name of the function executing in the frame, or `??' if not
known, and arguments are the arguments to the frame, with parentheses around them (each
argument is annotated individually as well, see “Values” (page 235)).
If source information is available, a reference to it is then printed:
^Z^Zframe-source-begin
source-intro-string
^Z^Zframe-source-file
filename
^Z^Zframe-source-file-end
:
^Z^Zframe-source-line
line-number
^Z^Zframe-source-end
20.4 Frames 237