526 lines
		
	
	
	
		
			23 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			526 lines
		
	
	
	
		
			23 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<HTML>
 | 
						|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 | 
						|
<!-- Created on March, 27  2008 by texi2html 1.64 -->
 | 
						|
<!-- 
 | 
						|
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
 | 
						|
            Karl Berry  <karl@freefriends.org>
 | 
						|
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
 | 
						|
            and many others.
 | 
						|
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
 | 
						|
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
 | 
						|
 
 | 
						|
-->
 | 
						|
<HEAD>
 | 
						|
<TITLE>Debugging with GDB: Annotations</TITLE>
 | 
						|
 | 
						|
<META NAME="description" CONTENT="Debugging with GDB: Annotations">
 | 
						|
<META NAME="keywords" CONTENT="Debugging with GDB: Annotations">
 | 
						|
<META NAME="resource-type" CONTENT="document">
 | 
						|
<META NAME="distribution" CONTENT="global">
 | 
						|
<META NAME="Generator" CONTENT="texi2html 1.64">
 | 
						|
 | 
						|
</HEAD>
 | 
						|
 | 
						|
<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
 | 
						|
 | 
						|
<A NAME="SEC646"></A>
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_25.html#SEC608"> < </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC647"> > </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_4.html#SEC14"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top"> Up </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<H1> 25. GDB Annotations </H1>
 | 
						|
<!--docid::SEC646::-->
 | 
						|
<P>
 | 
						|
 | 
						|
This chapter describes annotations in GDB.  Annotations were
 | 
						|
designed to interface GDB to graphical user interfaces or other
 | 
						|
similar programs which want to interact with GDB at a
 | 
						|
relatively high level.
 | 
						|
</P><P>
 | 
						|
 | 
						|
The annotation mechanism has largely been superseded by GDB/MI
 | 
						|
(see section <A HREF="gdb_25.html#SEC242">24. The GDB/MI Interface</A>).
 | 
						|
</P><P>
 | 
						|
 | 
						|
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
 | 
						|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_26.html#SEC647">25.1 What is an Annotation?</A></TD><TD>  </TD><TD ALIGN="left" VALIGN="TOP">What annotations are; the general syntax.</TD></TR>
 | 
						|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_26.html#SEC648">25.2 The Server Prefix</A></TD><TD>  </TD><TD ALIGN="left" VALIGN="TOP">Issuing a command without affecting user state.</TD></TR>
 | 
						|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_26.html#SEC649">25.3 Annotation for GDB Input</A></TD><TD>  </TD><TD ALIGN="left" VALIGN="TOP">Annotations marking GDB's need for input.</TD></TR>
 | 
						|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_26.html#SEC650">25.4 Errors</A></TD><TD>  </TD><TD ALIGN="left" VALIGN="TOP">Annotations for error messages.</TD></TR>
 | 
						|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_26.html#SEC651">25.5 Invalidation Notices</A></TD><TD>  </TD><TD ALIGN="left" VALIGN="TOP">Some annotations describe things now invalid.</TD></TR>
 | 
						|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_26.html#SEC652">25.6 Running the Program</A></TD><TD>  </TD><TD ALIGN="left" VALIGN="TOP">Whether the program is running, how it stopped, etc.</TD></TR>
 | 
						|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_26.html#SEC653">25.7 Displaying Source</A></TD><TD>  </TD><TD ALIGN="left" VALIGN="TOP">Annotations describing source code.</TD></TR>
 | 
						|
</TABLE></BLOCKQUOTE>
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="Annotations Overview"></A>
 | 
						|
<HR SIZE="6">
 | 
						|
<A NAME="SEC647"></A>
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> < </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC648"> > </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> Up </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<H2> 25.1 What is an Annotation? </H2>
 | 
						|
<!--docid::SEC647::-->
 | 
						|
<P>
 | 
						|
 | 
						|
Annotations start with a newline character, two <SAMP>`control-z'</SAMP>
 | 
						|
characters, and the name of the annotation.  If there is no additional
 | 
						|
information associated with this annotation, the name of the annotation
 | 
						|
is followed immediately by a newline.  If there is additional
 | 
						|
information, the name of the annotation is followed by a space, the
 | 
						|
additional information, and a newline.  The additional information
 | 
						|
cannot contain newline characters.
 | 
						|
</P><P>
 | 
						|
 | 
						|
Any output not beginning with a newline and two <SAMP>`control-z'</SAMP>
 | 
						|
characters denotes literal output from GDB.  Currently there is
 | 
						|
no need for GDB to output a newline followed by two
 | 
						|
<SAMP>`control-z'</SAMP> characters, but if there was such a need, the
 | 
						|
annotations could be extended with an <SAMP>`escape'</SAMP> annotation which
 | 
						|
means those three characters as output.
 | 
						|
</P><P>
 | 
						|
 | 
						|
The annotation <VAR>level</VAR>, which is specified using the
 | 
						|
<SAMP>`--annotate'</SAMP> command line option (see section <A HREF="gdb_3.html#SEC9">2.1.2 Choosing Modes</A>), controls
 | 
						|
how much information GDB prints together with its prompt,
 | 
						|
values of expressions, source lines, and other types of output.  Level 0
 | 
						|
is for no annotations, level 1 is for use when GDB is run as a
 | 
						|
subprocess of GNU Emacs, level 3 is the maximum annotation suitable
 | 
						|
for programs that control GDB, and level 2 annotations have
 | 
						|
been made obsolete (see section `Limitations of the Annotation Interface' in <CITE>GDB's Obsolete Annotations</CITE>).
 | 
						|
</P><P>
 | 
						|
 | 
						|
<DL COMPACT>
 | 
						|
<A NAME="IDX1290"></A>
 | 
						|
<DT><CODE>set annotate <VAR>level</VAR></CODE>
 | 
						|
<DD>The GDB command <CODE>set annotate</CODE> sets the level of
 | 
						|
annotations to the specified <VAR>level</VAR>.
 | 
						|
<P>
 | 
						|
 | 
						|
<DT><CODE>show annotate</CODE>
 | 
						|
<DD><A NAME="IDX1291"></A>
 | 
						|
Show the current annotation level.
 | 
						|
</DL>
 | 
						|
<P>
 | 
						|
 | 
						|
This chapter describes level 3 annotations.
 | 
						|
</P><P>
 | 
						|
 | 
						|
A simple example of starting up GDB with annotations is:
 | 
						|
</P><P>
 | 
						|
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>$ <KBD>gdb --annotate=3</KBD>
 | 
						|
GNU gdb 6.0
 | 
						|
Copyright 2003 Free Software Foundation, Inc.
 | 
						|
GDB is free software, covered by the GNU General Public License,
 | 
						|
and you are welcome to change it and/or distribute copies of it
 | 
						|
under certain conditions.
 | 
						|
Type "show copying" to see the conditions.
 | 
						|
There is absolutely no warranty for GDB.  Type "show warranty"
 | 
						|
for details.
 | 
						|
This GDB was configured as "i386-pc-linux-gnu"
 | 
						|
 | 
						|
^Z^Zpre-prompt
 | 
						|
(gdb)
 | 
						|
^Z^Zprompt
 | 
						|
<KBD>quit</KBD>
 | 
						|
 | 
						|
^Z^Zpost-prompt
 | 
						|
$
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
Here <SAMP>`quit'</SAMP> is input to GDB; the rest is output from
 | 
						|
GDB.  The three lines beginning <SAMP>`^Z^Z'</SAMP> (where <SAMP>`^Z'</SAMP>
 | 
						|
denotes a <SAMP>`control-z'</SAMP> character) are annotations; the rest is
 | 
						|
output from GDB.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<A NAME="Server Prefix"></A>
 | 
						|
<HR SIZE="6">
 | 
						|
<A NAME="SEC648"></A>
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC647"> < </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC649"> > </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC649"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> Up </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<H2> 25.2 The Server Prefix </H2>
 | 
						|
<!--docid::SEC648::-->
 | 
						|
<P>
 | 
						|
 | 
						|
If you prefix a command with <SAMP>`server '</SAMP> then it will not affect
 | 
						|
the command history, nor will it affect GDB's notion of which
 | 
						|
command to repeat if <KBD>RET</KBD> is pressed on a line by itself.  This
 | 
						|
means that commands can be run behind a user's back by a front-end in
 | 
						|
a transparent manner.
 | 
						|
</P><P>
 | 
						|
 | 
						|
The server prefix does not affect the recording of values into the value
 | 
						|
history; to print a value without recording it into the value history,
 | 
						|
use the <CODE>output</CODE> command instead of the <CODE>print</CODE> command.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<A NAME="Prompting"></A>
 | 
						|
<HR SIZE="6">
 | 
						|
<A NAME="SEC649"></A>
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC648"> < </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC650"> > </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC650"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> Up </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<H2> 25.3 Annotation for GDB Input </H2>
 | 
						|
<!--docid::SEC649::-->
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1292"></A>
 | 
						|
When GDB prompts for input, it annotates this fact so it is possible
 | 
						|
to know when to send output, when the output from a given command is
 | 
						|
over, etc.
 | 
						|
</P><P>
 | 
						|
 | 
						|
Different kinds of input each have a different <EM>input type</EM>.  Each
 | 
						|
input type has three annotations: a <CODE>pre-</CODE> annotation, which
 | 
						|
denotes the beginning of any prompt which is being output, a plain
 | 
						|
annotation, which denotes the end of the prompt, and then a <CODE>post-</CODE>
 | 
						|
annotation which denotes the end of any echo which may (or may not) be
 | 
						|
associated with the input.  For example, the <CODE>prompt</CODE> input type
 | 
						|
features the following annotations:
 | 
						|
</P><P>
 | 
						|
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>^Z^Zpre-prompt
 | 
						|
^Z^Zprompt
 | 
						|
^Z^Zpost-prompt
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
The input types are
 | 
						|
</P><P>
 | 
						|
 | 
						|
<DL COMPACT>
 | 
						|
<A NAME="IDX1293"></A>
 | 
						|
<A NAME="IDX1294"></A>
 | 
						|
<A NAME="IDX1295"></A>
 | 
						|
<DT><CODE>prompt</CODE>
 | 
						|
<DD>When GDB is prompting for a command (the main GDB prompt).
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1296"></A>
 | 
						|
<A NAME="IDX1297"></A>
 | 
						|
<A NAME="IDX1298"></A>
 | 
						|
<DT><CODE>commands</CODE>
 | 
						|
<DD>When GDB prompts for a set of commands, like in the <CODE>commands</CODE>
 | 
						|
command.  The annotations are repeated for each command which is input.
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1299"></A>
 | 
						|
<A NAME="IDX1300"></A>
 | 
						|
<A NAME="IDX1301"></A>
 | 
						|
<DT><CODE>overload-choice</CODE>
 | 
						|
<DD>When GDB wants the user to select between various overloaded functions.
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1302"></A>
 | 
						|
<A NAME="IDX1303"></A>
 | 
						|
<A NAME="IDX1304"></A>
 | 
						|
<DT><CODE>query</CODE>
 | 
						|
<DD>When GDB wants the user to confirm a potentially dangerous operation.
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1305"></A>
 | 
						|
<A NAME="IDX1306"></A>
 | 
						|
<A NAME="IDX1307"></A>
 | 
						|
<DT><CODE>prompt-for-continue</CODE>
 | 
						|
<DD>When GDB is asking the user to press return to continue.  Note: Don't
 | 
						|
expect this to work well; instead use <CODE>set height 0</CODE> to disable
 | 
						|
prompting.  This is because the counting of lines is buggy in the
 | 
						|
presence of annotations.
 | 
						|
</DL>
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="Errors"></A>
 | 
						|
<HR SIZE="6">
 | 
						|
<A NAME="SEC650"></A>
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC649"> < </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC651"> > </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC651"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> Up </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<H2> 25.4 Errors </H2>
 | 
						|
<!--docid::SEC650::-->
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1308"></A>
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>^Z^Zquit
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
This annotation occurs right before GDB responds to an interrupt.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<A NAME="IDX1309"></A>
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>^Z^Zerror
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
This annotation occurs right before GDB responds to an error.
 | 
						|
</P><P>
 | 
						|
 | 
						|
Quit and error annotations indicate that any annotations which GDB was
 | 
						|
in the middle of may end abruptly.  For example, if a
 | 
						|
<CODE>value-history-begin</CODE> annotation is followed by a <CODE>error</CODE>, one
 | 
						|
cannot expect to receive the matching <CODE>value-history-end</CODE>.  One
 | 
						|
cannot expect not to receive it either, however; an error annotation
 | 
						|
does not necessarily mean that GDB is immediately returning all the way
 | 
						|
to the top level.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<A NAME="IDX1310"></A>
 | 
						|
A quit or error annotation may be preceded by
 | 
						|
</P><P>
 | 
						|
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>^Z^Zerror-begin
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
Any output between that and the quit or error annotation is the error
 | 
						|
message.
 | 
						|
</P><P>
 | 
						|
 | 
						|
Warning messages are not yet annotated.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<A NAME="Invalidation"></A>
 | 
						|
<HR SIZE="6">
 | 
						|
<A NAME="SEC651"></A>
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC650"> < </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC652"> > </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC652"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> Up </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<H2> 25.5 Invalidation Notices </H2>
 | 
						|
<!--docid::SEC651::-->
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1311"></A>
 | 
						|
The following annotations say that certain pieces of state may have
 | 
						|
changed.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<DL COMPACT>
 | 
						|
<A NAME="IDX1312"></A>
 | 
						|
<DT><CODE>^Z^Zframes-invalid</CODE>
 | 
						|
<DD><P>
 | 
						|
 | 
						|
The frames (for example, output from the <CODE>backtrace</CODE> command) may
 | 
						|
have changed.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<A NAME="IDX1313"></A>
 | 
						|
<DT><CODE>^Z^Zbreakpoints-invalid</CODE>
 | 
						|
<DD><P>
 | 
						|
 | 
						|
The breakpoints may have changed.  For example, the user just added or
 | 
						|
deleted a breakpoint.
 | 
						|
</DL>
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="Annotations for Running"></A>
 | 
						|
<HR SIZE="6">
 | 
						|
<A NAME="SEC652"></A>
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC651"> < </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC653"> > </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC653"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> Up </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<H2> 25.6 Running the Program </H2>
 | 
						|
<!--docid::SEC652::-->
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1314"></A>
 | 
						|
<A NAME="IDX1315"></A>
 | 
						|
When the program starts executing due to a GDB command such as
 | 
						|
<CODE>step</CODE> or <CODE>continue</CODE>,
 | 
						|
</P><P>
 | 
						|
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>^Z^Zstarting
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
is output.  When the program stops,
 | 
						|
</P><P>
 | 
						|
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>^Z^Zstopped
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
is output.  Before the <CODE>stopped</CODE> annotation, a variety of
 | 
						|
annotations describe how the program stopped.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<DL COMPACT>
 | 
						|
<A NAME="IDX1316"></A>
 | 
						|
<DT><CODE>^Z^Zexited <VAR>exit-status</VAR></CODE>
 | 
						|
<DD>The program exited, and <VAR>exit-status</VAR> is the exit status (zero for
 | 
						|
successful exit, otherwise nonzero).
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1317"></A>
 | 
						|
<A NAME="IDX1318"></A>
 | 
						|
<A NAME="IDX1319"></A>
 | 
						|
<A NAME="IDX1320"></A>
 | 
						|
<A NAME="IDX1321"></A>
 | 
						|
<DT><CODE>^Z^Zsignalled</CODE>
 | 
						|
<DD>The program exited with a signal.  After the <CODE>^Z^Zsignalled</CODE>, the
 | 
						|
annotation continues:
 | 
						|
<P>
 | 
						|
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre><VAR>intro-text</VAR>
 | 
						|
^Z^Zsignal-name
 | 
						|
<VAR>name</VAR>
 | 
						|
^Z^Zsignal-name-end
 | 
						|
<VAR>middle-text</VAR>
 | 
						|
^Z^Zsignal-string
 | 
						|
<VAR>string</VAR>
 | 
						|
^Z^Zsignal-string-end
 | 
						|
<VAR>end-text</VAR>
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
where <VAR>name</VAR> is the name of the signal, such as <CODE>SIGILL</CODE> or
 | 
						|
<CODE>SIGSEGV</CODE>, and <VAR>string</VAR> is the explanation of the signal, such
 | 
						|
as <CODE>Illegal Instruction</CODE> or <CODE>Segmentation fault</CODE>.
 | 
						|
<VAR>intro-text</VAR>, <VAR>middle-text</VAR>, and <VAR>end-text</VAR> are for the
 | 
						|
user's benefit and have no particular format.
 | 
						|
</P><P>
 | 
						|
 | 
						|
<A NAME="IDX1322"></A>
 | 
						|
<DT><CODE>^Z^Zsignal</CODE>
 | 
						|
<DD>The syntax of this annotation is just like <CODE>signalled</CODE>, but GDB is
 | 
						|
just saying that the program received the signal, not that it was
 | 
						|
terminated with it.
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1323"></A>
 | 
						|
<DT><CODE>^Z^Zbreakpoint <VAR>number</VAR></CODE>
 | 
						|
<DD>The program hit breakpoint number <VAR>number</VAR>.
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1324"></A>
 | 
						|
<DT><CODE>^Z^Zwatchpoint <VAR>number</VAR></CODE>
 | 
						|
<DD>The program hit watchpoint number <VAR>number</VAR>.
 | 
						|
</DL>
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="Source Annotations"></A>
 | 
						|
<HR SIZE="6">
 | 
						|
<A NAME="SEC653"></A>
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC652"> < </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> > </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> Up </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<H2> 25.7 Displaying Source </H2>
 | 
						|
<!--docid::SEC653::-->
 | 
						|
<P>
 | 
						|
 | 
						|
<A NAME="IDX1325"></A>
 | 
						|
The following annotation is used instead of displaying source code:
 | 
						|
</P><P>
 | 
						|
 | 
						|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>^Z^Zsource <VAR>filename</VAR>:<VAR>line</VAR>:<VAR>character</VAR>:<VAR>middle</VAR>:<VAR>addr</VAR>
 | 
						|
</FONT></pre></td></tr></table></P><P>
 | 
						|
 | 
						|
where <VAR>filename</VAR> is an absolute file name indicating which source
 | 
						|
file, <VAR>line</VAR> is the line number within that file (where 1 is the
 | 
						|
first line in the file), <VAR>character</VAR> is the character position
 | 
						|
within the file (where 0 is the first character in the file) (for most
 | 
						|
debug formats this will necessarily point to the beginning of a line),
 | 
						|
<VAR>middle</VAR> is <SAMP>`middle'</SAMP> if <VAR>addr</VAR> is in the middle of the
 | 
						|
line, or <SAMP>`beg'</SAMP> if <VAR>addr</VAR> is at the beginning of the line, and
 | 
						|
<VAR>addr</VAR> is the address in the target program associated with the
 | 
						|
source which is being displayed.  <VAR>addr</VAR> is in the form <SAMP>`0x'</SAMP>
 | 
						|
followed by one or more lowercase hex digits (note that this does not
 | 
						|
depend on the language).
 | 
						|
</P><P>
 | 
						|
 | 
						|
<A NAME="GDB Bugs"></A>
 | 
						|
<HR SIZE="6">
 | 
						|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
 | 
						|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_26.html#SEC646"> << </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_27.html#SEC654"> >> </A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">   <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb.html#SEC_Top">Top</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_toc.html#SEC_Contents">Contents</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_38.html#SEC764">Index</A>]</TD>
 | 
						|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_abt.html#SEC_About"> ? </A>]</TD>
 | 
						|
</TR></TABLE>
 | 
						|
<BR>  
 | 
						|
<FONT SIZE="-1">
 | 
						|
 | 
						|
<address>
 | 
						|
 | 
						|
<p>Please send FSF & GNU inquiries & questions to <a
 | 
						|
href="mailto:gnu@gnu.org">gnu@gnu.org</a>.  There are also <a
 | 
						|
href="http://www.gnu.org/home.html#ContactInfo">other ways to
 | 
						|
contact</a> the FSF.</p>
 | 
						|
 | 
						|
<p>These pages are maintained by <a
 | 
						|
href="http://www.gnu.org/software/gdb/">the GDB developers</a>.</p>
 | 
						|
 | 
						|
<p>Copyright Free Software Foundation, Inc., 59 Temple Place - Suite
 | 
						|
330, Boston, MA 02111, USA.</p>
 | 
						|
 | 
						|
<p>Verbatim copying and distribution of this entire article is
 | 
						|
permitted in any medium, provided this notice is preserved.</p>
 | 
						|
 | 
						|
</address>
 | 
						|
 | 
						|
This document was generated
 | 
						|
by <I>GDB Administrator</I> on <I>March, 27  2008</I>
 | 
						|
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 | 
						|
"><I>texi2html</I></A>
 | 
						|
 | 
						|
</BODY>
 | 
						|
</HTML>
 |