annotate: Frame Annotations

 
 6 Frames
 ********
 
 _Value Annotations have been removed.  GDB/MI instead provides a number
 of frame commands._
 
    _Frame annotations are no longer available.  The GDB/MI provides
 '-stack-list-arguments', '-stack-list-locals', and '-stack-list-frames'
 commands._
 
    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, SeeValue Annotations).
 
      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
 
      where 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
           INFORMATION
 
      Then, 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 (SeeSource Annotations) is
      displayed.  Unlike most annotations, this is output instead of the
      normal text which would be output, not in addition.