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-stringwhere 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-stringwhere 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).
^Z^Zframe-address address ^Z^Zframe-address-end separator-stringwhere 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 argumentswhere 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 section Values). 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-endwhere source-intro-string separates for the user's benefit the reference from the text which precedes it, filename is the name of the source file, and line-number is the line number within that file (the first line is line 1). If GDB prints some information about where the frame is from (which library, which load segment, etc.; currently only done on the RS/6000), it is annotated with
^Z^Zframe-where informationThen, if source is to actually be displayed for this frame (for example, this is not true for output from the
backtrace
command), then a
source
annotation (see section Displaying Source) is displayed. Unlike
most annotations, this is output instead of the normal text which would be
output, not in addition.
Go to the first, previous, next, last section, table of contents.