You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
776 lines
32 KiB
HTML
776 lines
32 KiB
HTML
15 years ago
|
<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: Invocation</TITLE>
|
||
|
|
||
|
<META NAME="description" CONTENT="Debugging with GDB: Invocation">
|
||
|
<META NAME="keywords" CONTENT="Debugging with GDB: Invocation">
|
||
|
<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="SEC6"></A>
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_2.html#SEC5"> < </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC7"> > </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_4.html#SEC14"> >> </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> 2. Getting In and Out of GDB </H1>
|
||
|
<!--docid::SEC6::-->
|
||
|
<P>
|
||
|
|
||
|
This chapter discusses how to start GDB, and how to get out of it.
|
||
|
The essentials are:
|
||
|
<UL>
|
||
|
<LI>
|
||
|
type <SAMP>`gdb'</SAMP> to start GDB.
|
||
|
<LI>
|
||
|
type <KBD>quit</KBD> or <KBD>Ctrl-d</KBD> to exit.
|
||
|
</UL>
|
||
|
<P>
|
||
|
|
||
|
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
|
||
|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_3.html#SEC7">2.1 Invoking GDB</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">How to start GDB</TD></TR>
|
||
|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_3.html#SEC11">2.2 Quitting GDB</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">How to quit GDB</TD></TR>
|
||
|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_3.html#SEC12">2.3 Shell Commands</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">How to use shell commands inside GDB</TD></TR>
|
||
|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_3.html#SEC13">2.4 Logging Output</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">How to log GDB's output to a file</TD></TR>
|
||
|
</TABLE></BLOCKQUOTE>
|
||
|
<P>
|
||
|
|
||
|
<A NAME="Invoking GDB"></A>
|
||
|
<HR SIZE="6">
|
||
|
<A NAME="SEC7"></A>
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> < </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC8"> > </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> << </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> Up </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC11"> >> </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> 2.1 Invoking GDB </H2>
|
||
|
<!--docid::SEC7::-->
|
||
|
<P>
|
||
|
|
||
|
Invoke GDB by running the program <CODE>gdb</CODE>. Once started,
|
||
|
GDB reads commands from the terminal until you tell it to exit.
|
||
|
</P><P>
|
||
|
|
||
|
You can also run <CODE>gdb</CODE> with a variety of arguments and options,
|
||
|
to specify more of your debugging environment at the outset.
|
||
|
</P><P>
|
||
|
|
||
|
The command-line options described here are designed
|
||
|
to cover a variety of situations; in some environments, some of these
|
||
|
options may effectively be unavailable.
|
||
|
</P><P>
|
||
|
|
||
|
The most usual way to start GDB is with one argument,
|
||
|
specifying an executable program:
|
||
|
</P><P>
|
||
|
|
||
|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>gdb <VAR>program</VAR>
|
||
|
</FONT></pre></td></tr></table></P><P>
|
||
|
|
||
|
You can also start with both an executable program and a core file
|
||
|
specified:
|
||
|
</P><P>
|
||
|
|
||
|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>gdb <VAR>program</VAR> <VAR>core</VAR>
|
||
|
</FONT></pre></td></tr></table></P><P>
|
||
|
|
||
|
You can, instead, specify a process ID as a second argument, if you want
|
||
|
to debug a running process:
|
||
|
</P><P>
|
||
|
|
||
|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>gdb <VAR>program</VAR> 1234
|
||
|
</FONT></pre></td></tr></table></P><P>
|
||
|
|
||
|
would attach GDB to process <CODE>1234</CODE> (unless you also have a file
|
||
|
named <TT>`1234'</TT>; GDB does check for a core file first).
|
||
|
</P><P>
|
||
|
|
||
|
Taking advantage of the second command-line argument requires a fairly
|
||
|
complete operating system; when you use GDB as a remote
|
||
|
debugger attached to a bare board, there may not be any notion of
|
||
|
"process", and there is often no way to get a core dump. GDB
|
||
|
will warn you if it is unable to attach or to read core dumps.
|
||
|
</P><P>
|
||
|
|
||
|
You can optionally have <CODE>gdb</CODE> pass any arguments after the
|
||
|
executable file to the inferior using <CODE>--args</CODE>. This option stops
|
||
|
option processing.
|
||
|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>gdb --args gcc -O2 -c foo.c
|
||
|
</FONT></pre></td></tr></table>This will cause <CODE>gdb</CODE> to debug <CODE>gcc</CODE>, and to set
|
||
|
<CODE>gcc</CODE>'s command-line arguments (see section <A HREF="gdb_5.html#SEC21">4.3 Your Program's Arguments</A>) to <SAMP>`-O2 -c foo.c'</SAMP>.
|
||
|
</P><P>
|
||
|
|
||
|
You can run <CODE>gdb</CODE> without printing the front material, which describes
|
||
|
GDB's non-warranty, by specifying <CODE>-silent</CODE>:
|
||
|
</P><P>
|
||
|
|
||
|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>gdb -silent
|
||
|
</FONT></pre></td></tr></table></P><P>
|
||
|
|
||
|
You can further control how GDB starts up by using command-line
|
||
|
options. GDB itself can remind you of the options available.
|
||
|
</P><P>
|
||
|
|
||
|
Type
|
||
|
</P><P>
|
||
|
|
||
|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>gdb -help
|
||
|
</FONT></pre></td></tr></table></P><P>
|
||
|
|
||
|
to display all available options and briefly describe their use
|
||
|
(<SAMP>`gdb -h'</SAMP> is a shorter equivalent).
|
||
|
</P><P>
|
||
|
|
||
|
All options and command line arguments you give are processed
|
||
|
in sequential order. The order makes a difference when the
|
||
|
<SAMP>`-x'</SAMP> option is used.
|
||
|
</P><P>
|
||
|
|
||
|
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
|
||
|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_3.html#SEC8">2.1.1 Choosing Files</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Choosing files</TD></TR>
|
||
|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_3.html#SEC9">2.1.2 Choosing Modes</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Choosing modes</TD></TR>
|
||
|
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="gdb_3.html#SEC10">2.1.3 What GDB Does During Startup</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">What GDB does during startup</TD></TR>
|
||
|
</TABLE></BLOCKQUOTE>
|
||
|
<P>
|
||
|
|
||
|
<A NAME="File Options"></A>
|
||
|
<HR SIZE="6">
|
||
|
<A NAME="SEC8"></A>
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC7"> < </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC9"> > </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> << </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC7"> Up </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC11"> >> </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>
|
||
|
<H3> 2.1.1 Choosing Files </H3>
|
||
|
<!--docid::SEC8::-->
|
||
|
<P>
|
||
|
|
||
|
When GDB starts, it reads any arguments other than options as
|
||
|
specifying an executable file and core file (or process ID). This is
|
||
|
the same as if the arguments were specified by the <SAMP>`-se'</SAMP> and
|
||
|
<SAMP>`-c'</SAMP> (or <SAMP>`-p'</SAMP>) options respectively. (GDB reads the
|
||
|
first argument that does not have an associated option flag as
|
||
|
equivalent to the <SAMP>`-se'</SAMP> option followed by that argument; and the
|
||
|
second argument that does not have an associated option flag, if any, as
|
||
|
equivalent to the <SAMP>`-c'</SAMP>/<SAMP>`-p'</SAMP> option followed by that argument.)
|
||
|
If the second argument begins with a decimal digit, GDB will
|
||
|
first attempt to attach to it as a process, and if that fails, attempt
|
||
|
to open it as a corefile. If you have a corefile whose name begins with
|
||
|
a digit, you can prevent GDB from treating it as a pid by
|
||
|
prefixing it with <TT>`./'</TT>, e.g. <TT>`./12345'</TT>.
|
||
|
</P><P>
|
||
|
|
||
|
If GDB has not been configured to included core file support,
|
||
|
such as for most embedded targets, then it will complain about a second
|
||
|
argument and ignore it.
|
||
|
</P><P>
|
||
|
|
||
|
Many options have both long and short forms; both are shown in the
|
||
|
following list. GDB also recognizes the long forms if you truncate
|
||
|
them, so long as enough of the option is present to be unambiguous.
|
||
|
(If you prefer, you can flag option arguments with <SAMP>`--'</SAMP> rather
|
||
|
than <SAMP>`-'</SAMP>, though we illustrate the more usual convention.)
|
||
|
</P><P>
|
||
|
|
||
|
<DL COMPACT>
|
||
|
<DT><CODE>-symbols <VAR>file</VAR></CODE>
|
||
|
<DD><DT><CODE>-s <VAR>file</VAR></CODE>
|
||
|
<DD><A NAME="IDX4"></A>
|
||
|
<A NAME="IDX5"></A>
|
||
|
Read symbol table from file <VAR>file</VAR>.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-exec <VAR>file</VAR></CODE>
|
||
|
<DD><DT><CODE>-e <VAR>file</VAR></CODE>
|
||
|
<DD><A NAME="IDX6"></A>
|
||
|
<A NAME="IDX7"></A>
|
||
|
Use file <VAR>file</VAR> as the executable file to execute when appropriate,
|
||
|
and for examining pure data in conjunction with a core dump.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-se <VAR>file</VAR></CODE>
|
||
|
<DD><A NAME="IDX8"></A>
|
||
|
Read symbol table from file <VAR>file</VAR> and use it as the executable
|
||
|
file.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-core <VAR>file</VAR></CODE>
|
||
|
<DD><DT><CODE>-c <VAR>file</VAR></CODE>
|
||
|
<DD><A NAME="IDX9"></A>
|
||
|
<A NAME="IDX10"></A>
|
||
|
Use file <VAR>file</VAR> as a core dump to examine.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-pid <VAR>number</VAR></CODE>
|
||
|
<DD><DT><CODE>-p <VAR>number</VAR></CODE>
|
||
|
<DD><A NAME="IDX11"></A>
|
||
|
<A NAME="IDX12"></A>
|
||
|
Connect to process ID <VAR>number</VAR>, as with the <CODE>attach</CODE> command.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-command <VAR>file</VAR></CODE>
|
||
|
<DD><DT><CODE>-x <VAR>file</VAR></CODE>
|
||
|
<DD><A NAME="IDX13"></A>
|
||
|
<A NAME="IDX14"></A>
|
||
|
Execute GDB commands from file <VAR>file</VAR>. See section <A HREF="gdb_21.html#SEC232">Command files</A>.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-eval-command <VAR>command</VAR></CODE>
|
||
|
<DD><DT><CODE>-ex <VAR>command</VAR></CODE>
|
||
|
<DD><A NAME="IDX15"></A>
|
||
|
<A NAME="IDX16"></A>
|
||
|
Execute a single GDB command.
|
||
|
<P>
|
||
|
|
||
|
This option may be used multiple times to call multiple commands. It may
|
||
|
also be interleaved with <SAMP>`-command'</SAMP> as required.
|
||
|
</P><P>
|
||
|
|
||
|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>gdb -ex 'target sim' -ex 'load' \
|
||
|
-x setbreakpoints -ex 'run' a.out
|
||
|
</FONT></pre></td></tr></table></P><P>
|
||
|
|
||
|
<DT><CODE>-directory <VAR>directory</VAR></CODE>
|
||
|
<DD><DT><CODE>-d <VAR>directory</VAR></CODE>
|
||
|
<DD><A NAME="IDX17"></A>
|
||
|
<A NAME="IDX18"></A>
|
||
|
Add <VAR>directory</VAR> to the path to search for source and script files.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-r</CODE>
|
||
|
<DD><DT><CODE>-readnow</CODE>
|
||
|
<DD><A NAME="IDX19"></A>
|
||
|
<A NAME="IDX20"></A>
|
||
|
Read each symbol file's entire symbol table immediately, rather than
|
||
|
the default, which is to read it incrementally as it is needed.
|
||
|
This makes startup slower, but makes future operations faster.
|
||
|
<P>
|
||
|
|
||
|
</DL>
|
||
|
<P>
|
||
|
|
||
|
<A NAME="Mode Options"></A>
|
||
|
<HR SIZE="6">
|
||
|
<A NAME="SEC9"></A>
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC8"> < </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC10"> > </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC10"> << </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC7"> Up </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC11"> >> </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>
|
||
|
<H3> 2.1.2 Choosing Modes </H3>
|
||
|
<!--docid::SEC9::-->
|
||
|
<P>
|
||
|
|
||
|
You can run GDB in various alternative modes--for example, in
|
||
|
batch mode or quiet mode.
|
||
|
</P><P>
|
||
|
|
||
|
<DL COMPACT>
|
||
|
<DT><CODE>-nx</CODE>
|
||
|
<DD><DT><CODE>-n</CODE>
|
||
|
<DD><A NAME="IDX21"></A>
|
||
|
<A NAME="IDX22"></A>
|
||
|
Do not execute commands found in any initialization files. Normally,
|
||
|
GDB executes the commands in these files after all the command
|
||
|
options and arguments have been processed. See section <A HREF="gdb_21.html#SEC232">Command Files</A>.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-quiet</CODE>
|
||
|
<DD><DT><CODE>-silent</CODE>
|
||
|
<DD><DT><CODE>-q</CODE>
|
||
|
<DD><A NAME="IDX23"></A>
|
||
|
<A NAME="IDX24"></A>
|
||
|
<A NAME="IDX25"></A>
|
||
|
"Quiet". Do not print the introductory and copyright messages. These
|
||
|
messages are also suppressed in batch mode.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-batch</CODE>
|
||
|
<DD><A NAME="IDX26"></A>
|
||
|
Run in batch mode. Exit with status <CODE>0</CODE> after processing all the
|
||
|
command files specified with <SAMP>`-x'</SAMP> (and all commands from
|
||
|
initialization files, if not inhibited with <SAMP>`-n'</SAMP>). Exit with
|
||
|
nonzero status if an error occurs in executing the GDB commands
|
||
|
in the command files.
|
||
|
<P>
|
||
|
|
||
|
Batch mode may be useful for running GDB as a filter, for
|
||
|
example to download and run a program on another computer; in order to
|
||
|
make this more useful, the message
|
||
|
</P><P>
|
||
|
|
||
|
<TABLE><tr><td> </td><td class=smallexample><FONT SIZE=-1><pre>Program exited normally.
|
||
|
</FONT></pre></td></tr></table></P><P>
|
||
|
|
||
|
(which is ordinarily issued whenever a program running under
|
||
|
GDB control terminates) is not issued when running in batch
|
||
|
mode.
|
||
|
</P><P>
|
||
|
|
||
|
<DT><CODE>-batch-silent</CODE>
|
||
|
<DD><A NAME="IDX27"></A>
|
||
|
Run in batch mode exactly like <SAMP>`-batch'</SAMP>, but totally silently. All
|
||
|
GDB output to <CODE>stdout</CODE> is prevented (<CODE>stderr</CODE> is
|
||
|
unaffected). This is much quieter than <SAMP>`-silent'</SAMP> and would be useless
|
||
|
for an interactive session.
|
||
|
<P>
|
||
|
|
||
|
This is particularly useful when using targets that give <SAMP>`Loading section'</SAMP>
|
||
|
messages, for example.
|
||
|
</P><P>
|
||
|
|
||
|
Note that targets that give their output via GDB, as opposed to
|
||
|
writing directly to <CODE>stdout</CODE>, will also be made silent.
|
||
|
</P><P>
|
||
|
|
||
|
<DT><CODE>-return-child-result</CODE>
|
||
|
<DD><A NAME="IDX28"></A>
|
||
|
The return code from GDB will be the return code from the child
|
||
|
process (the process being debugged), with the following exceptions:
|
||
|
<P>
|
||
|
|
||
|
<UL>
|
||
|
<LI>
|
||
|
GDB exits abnormally. E.g., due to an incorrect argument or an
|
||
|
internal error. In this case the exit code is the same as it would have been
|
||
|
without <SAMP>`-return-child-result'</SAMP>.
|
||
|
<LI>
|
||
|
The user quits with an explicit value. E.g., <SAMP>`quit 1'</SAMP>.
|
||
|
<LI>
|
||
|
The child process never runs, or is not allowed to terminate, in which case
|
||
|
the exit code will be -1.
|
||
|
</UL>
|
||
|
<P>
|
||
|
|
||
|
This option is useful in conjunction with <SAMP>`-batch'</SAMP> or <SAMP>`-batch-silent'</SAMP>,
|
||
|
when GDB is being used as a remote program loader or simulator
|
||
|
interface.
|
||
|
</P><P>
|
||
|
|
||
|
<DT><CODE>-nowindows</CODE>
|
||
|
<DD><DT><CODE>-nw</CODE>
|
||
|
<DD><A NAME="IDX29"></A>
|
||
|
<A NAME="IDX30"></A>
|
||
|
"No windows". If GDB comes with a graphical user interface
|
||
|
(GUI) built in, then this option tells GDB to only use the command-line
|
||
|
interface. If no GUI is available, this option has no effect.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-windows</CODE>
|
||
|
<DD><DT><CODE>-w</CODE>
|
||
|
<DD><A NAME="IDX31"></A>
|
||
|
<A NAME="IDX32"></A>
|
||
|
If GDB includes a GUI, then this option requires it to be
|
||
|
used if possible.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-cd <VAR>directory</VAR></CODE>
|
||
|
<DD><A NAME="IDX33"></A>
|
||
|
Run GDB using <VAR>directory</VAR> as its working directory,
|
||
|
instead of the current directory.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-fullname</CODE>
|
||
|
<DD><DT><CODE>-f</CODE>
|
||
|
<DD><A NAME="IDX34"></A>
|
||
|
<A NAME="IDX35"></A>
|
||
|
GNU Emacs sets this option when it runs GDB as a
|
||
|
subprocess. It tells GDB to output the full file name and line
|
||
|
number in a standard, recognizable fashion each time a stack frame is
|
||
|
displayed (which includes each time your program stops). This
|
||
|
recognizable format looks like two <SAMP>`\032'</SAMP> characters, followed by
|
||
|
the file name, line number and character position separated by colons,
|
||
|
and a newline. The Emacs-to-GDB interface program uses the two
|
||
|
<SAMP>`\032'</SAMP> characters as a signal to display the source code for the
|
||
|
frame.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-epoch</CODE>
|
||
|
<DD><A NAME="IDX36"></A>
|
||
|
The Epoch Emacs-GDB interface sets this option when it runs
|
||
|
GDB as a subprocess. It tells GDB to modify its print
|
||
|
routines so as to allow Epoch to display values of expressions in a
|
||
|
separate window.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-annotate <VAR>level</VAR></CODE>
|
||
|
<DD><A NAME="IDX37"></A>
|
||
|
This option sets the <EM>annotation level</EM> inside GDB. Its
|
||
|
effect is identical to using <SAMP>`set annotate <VAR>level</VAR>'</SAMP>
|
||
|
(see section <A HREF="gdb_26.html#SEC646">25. GDB Annotations</A>). The annotation <VAR>level</VAR> controls how much
|
||
|
information GDB prints together with its prompt, values of
|
||
|
expressions, source lines, and other types of output. Level 0 is the
|
||
|
normal, 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 has been deprecated.
|
||
|
<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>
|
||
|
|
||
|
<DT><CODE>--args</CODE>
|
||
|
<DD><A NAME="IDX38"></A>
|
||
|
Change interpretation of command line so that arguments following the
|
||
|
executable file are passed as command line arguments to the inferior.
|
||
|
This option stops option processing.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-baud <VAR>bps</VAR></CODE>
|
||
|
<DD><DT><CODE>-b <VAR>bps</VAR></CODE>
|
||
|
<DD><A NAME="IDX39"></A>
|
||
|
<A NAME="IDX40"></A>
|
||
|
Set the line speed (baud rate or bits per second) of any serial
|
||
|
interface used by GDB for remote debugging.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-l <VAR>timeout</VAR></CODE>
|
||
|
<DD><A NAME="IDX41"></A>
|
||
|
Set the timeout (in seconds) of any communication used by GDB
|
||
|
for remote debugging.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-tty <VAR>device</VAR></CODE>
|
||
|
<DD><DT><CODE>-t <VAR>device</VAR></CODE>
|
||
|
<DD><A NAME="IDX42"></A>
|
||
|
<A NAME="IDX43"></A>
|
||
|
Run using <VAR>device</VAR> for your program's standard input and output.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-tui</CODE>
|
||
|
<DD><A NAME="IDX44"></A>
|
||
|
Activate the <EM>Text User Interface</EM> when starting. The Text User
|
||
|
Interface manages several text windows on the terminal, showing
|
||
|
source, assembly, registers and GDB command outputs
|
||
|
(see section <A HREF="gdb_23.html#SEC235">GDB Text User Interface</A>). Alternatively, the
|
||
|
Text User Interface can be enabled by invoking the program
|
||
|
<SAMP>`gdbtui'</SAMP>. Do not use this option if you run GDB from
|
||
|
Emacs (see section <A HREF="gdb_24.html#SEC241">Using GDB under GNU Emacs</A>).
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-interpreter <VAR>interp</VAR></CODE>
|
||
|
<DD><A NAME="IDX45"></A>
|
||
|
Use the interpreter <VAR>interp</VAR> for interface with the controlling
|
||
|
program or device. This option is meant to be set by programs which
|
||
|
communicate with GDB using it as a back end.
|
||
|
See section <A HREF="gdb_22.html#SEC234">Command Interpreters</A>.
|
||
|
<P>
|
||
|
|
||
|
<SAMP>`--interpreter=mi'</SAMP> (or <SAMP>`--interpreter=mi2'</SAMP>) causes
|
||
|
GDB to use the <EM>GDB/MI interface</EM> (see section <A HREF="gdb_25.html#SEC242">The GDB/MI Interface</A>) included since GDB version 6.0. The
|
||
|
previous GDB/MI interface, included in GDB version 5.3 and
|
||
|
selected with <SAMP>`--interpreter=mi1'</SAMP>, is deprecated. Earlier
|
||
|
GDB/MI interfaces are no longer supported.
|
||
|
</P><P>
|
||
|
|
||
|
<DT><CODE>-write</CODE>
|
||
|
<DD><A NAME="IDX46"></A>
|
||
|
Open the executable and core files for both reading and writing. This
|
||
|
is equivalent to the <SAMP>`set write on'</SAMP> command inside GDB
|
||
|
(see section <A HREF="gdb_15.html#SEC153">14.6 Patching Programs</A>).
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-statistics</CODE>
|
||
|
<DD><A NAME="IDX47"></A>
|
||
|
This option causes GDB to print statistics about time and
|
||
|
memory usage after it completes each command and returns to the prompt.
|
||
|
<P>
|
||
|
|
||
|
<DT><CODE>-version</CODE>
|
||
|
<DD><A NAME="IDX48"></A>
|
||
|
This option causes GDB to print its version number and
|
||
|
no-warranty blurb, and exit.
|
||
|
<P>
|
||
|
|
||
|
</DL>
|
||
|
<P>
|
||
|
|
||
|
<A NAME="Startup"></A>
|
||
|
<HR SIZE="6">
|
||
|
<A NAME="SEC10"></A>
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC9"> < </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC11"> > </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> << </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC7"> Up </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC11"> >> </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>
|
||
|
<H3> 2.1.3 What GDB Does During Startup </H3>
|
||
|
<!--docid::SEC10::-->
|
||
|
<P>
|
||
|
|
||
|
Here's the description of what GDB does during session startup:
|
||
|
</P><P>
|
||
|
|
||
|
<OL>
|
||
|
<LI>
|
||
|
Sets up the command interpreter as specified by the command line
|
||
|
(see section <A HREF="gdb_3.html#SEC9">interpreter</A>).
|
||
|
<P>
|
||
|
|
||
|
<LI>
|
||
|
<A NAME="IDX49"></A>
|
||
|
Reads the <EM>init file</EM> (if any) in your home directory<A NAME="DOCF1" HREF="gdb_fot.html#FOOT1">(1)</A> and executes all the commands in
|
||
|
that file.
|
||
|
<P>
|
||
|
|
||
|
<LI>
|
||
|
Processes command line options and operands.
|
||
|
<P>
|
||
|
|
||
|
<LI>
|
||
|
Reads and executes the commands from init file (if any) in the current
|
||
|
working directory. This is only done if the current directory is
|
||
|
different from your home directory. Thus, you can have more than one
|
||
|
init file, one generic in your home directory, and another, specific
|
||
|
to the program you are debugging, in the directory where you invoke
|
||
|
GDB.
|
||
|
<P>
|
||
|
|
||
|
<LI>
|
||
|
Reads command files specified by the <SAMP>`-x'</SAMP> option. See section <A HREF="gdb_21.html#SEC232">20.3 Command Files</A>, for more details about GDB command files.
|
||
|
<P>
|
||
|
|
||
|
<LI>
|
||
|
Reads the command history recorded in the <EM>history file</EM>.
|
||
|
See section <A HREF="gdb_20.html#SEC223">19.3 Command History</A>, for more details about the command history and the
|
||
|
files where GDB records it.
|
||
|
</OL>
|
||
|
<P>
|
||
|
|
||
|
Init files use the same syntax as <EM>command files</EM> (see section <A HREF="gdb_21.html#SEC232">20.3 Command Files</A>) and are processed by GDB in the same way. The init
|
||
|
file in your home directory can set options (such as <SAMP>`set
|
||
|
complaints'</SAMP>) that affect subsequent processing of command line options
|
||
|
and operands. Init files are not executed if you use the <SAMP>`-nx'</SAMP>
|
||
|
option (see section <A HREF="gdb_3.html#SEC9">Choosing Modes</A>).
|
||
|
</P><P>
|
||
|
|
||
|
<A NAME="IDX50"></A>
|
||
|
<A NAME="IDX51"></A>
|
||
|
<A NAME="IDX52"></A>
|
||
|
The GDB init files are normally called <TT>`.gdbinit'</TT>.
|
||
|
The DJGPP port of GDB uses the name <TT>`gdb.ini'</TT>, due to
|
||
|
the limitations of file names imposed by DOS filesystems. The Windows
|
||
|
ports of GDB use the standard name, but if they find a
|
||
|
<TT>`gdb.ini'</TT> file, they warn you about that and suggest to rename
|
||
|
the file to the standard name.
|
||
|
</P><P>
|
||
|
|
||
|
<A NAME="Quitting GDB"></A>
|
||
|
<HR SIZE="6">
|
||
|
<A NAME="SEC11"></A>
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC10"> < </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC12"> > </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC12"> << </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> Up </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_4.html#SEC14"> >> </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> 2.2 Quitting GDB </H2>
|
||
|
<!--docid::SEC11::-->
|
||
|
<P>
|
||
|
|
||
|
<DL COMPACT>
|
||
|
<A NAME="IDX53"></A>
|
||
|
<A NAME="IDX54"></A>
|
||
|
<DT><CODE>quit [<VAR>expression</VAR>]</CODE>
|
||
|
<DD><DT><CODE>q</CODE>
|
||
|
<DD>To exit GDB, use the <CODE>quit</CODE> command (abbreviated
|
||
|
<CODE>q</CODE>), or type an end-of-file character (usually <KBD>Ctrl-d</KBD>). If you
|
||
|
do not supply <VAR>expression</VAR>, GDB will terminate normally;
|
||
|
otherwise it will terminate using the result of <VAR>expression</VAR> as the
|
||
|
error code.
|
||
|
</DL>
|
||
|
<P>
|
||
|
|
||
|
<A NAME="IDX55"></A>
|
||
|
An interrupt (often <KBD>Ctrl-c</KBD>) does not exit from GDB, but rather
|
||
|
terminates the action of any GDB command that is in progress and
|
||
|
returns to GDB command level. It is safe to type the interrupt
|
||
|
character at any time because GDB does not allow it to take effect
|
||
|
until a time when it is safe.
|
||
|
</P><P>
|
||
|
|
||
|
If you have been using GDB to control an attached process or
|
||
|
device, you can release it with the <CODE>detach</CODE> command
|
||
|
(see section <A HREF="gdb_5.html#SEC25">Debugging an Already-running Process</A>).
|
||
|
</P><P>
|
||
|
|
||
|
<A NAME="Shell Commands"></A>
|
||
|
<HR SIZE="6">
|
||
|
<A NAME="SEC12"></A>
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC11"> < </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC13"> > </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC13"> << </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> Up </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_4.html#SEC14"> >> </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> 2.3 Shell Commands </H2>
|
||
|
<!--docid::SEC12::-->
|
||
|
<P>
|
||
|
|
||
|
If you need to execute occasional shell commands during your
|
||
|
debugging session, there is no need to leave or suspend GDB; you can
|
||
|
just use the <CODE>shell</CODE> command.
|
||
|
</P><P>
|
||
|
|
||
|
<DL COMPACT>
|
||
|
<A NAME="IDX56"></A>
|
||
|
<A NAME="IDX57"></A>
|
||
|
<DT><CODE>shell <VAR>command string</VAR></CODE>
|
||
|
<DD>Invoke a standard shell to execute <VAR>command string</VAR>.
|
||
|
If it exists, the environment variable <CODE>SHELL</CODE> determines which
|
||
|
shell to run. Otherwise GDB uses the default shell
|
||
|
(<TT>`/bin/sh'</TT> on Unix systems, <TT>`COMMAND.COM'</TT> on MS-DOS, etc.).
|
||
|
</DL>
|
||
|
<P>
|
||
|
|
||
|
The utility <CODE>make</CODE> is often needed in development environments.
|
||
|
You do not have to use the <CODE>shell</CODE> command for this purpose in
|
||
|
GDB:
|
||
|
</P><P>
|
||
|
|
||
|
<DL COMPACT>
|
||
|
<A NAME="IDX58"></A>
|
||
|
<A NAME="IDX59"></A>
|
||
|
<DT><CODE>make <VAR>make-args</VAR></CODE>
|
||
|
<DD>Execute the <CODE>make</CODE> program with the specified
|
||
|
arguments. This is equivalent to <SAMP>`shell make <VAR>make-args</VAR>'</SAMP>.
|
||
|
</DL>
|
||
|
<P>
|
||
|
|
||
|
<A NAME="Logging Output"></A>
|
||
|
<HR SIZE="6">
|
||
|
<A NAME="SEC13"></A>
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC12"> < </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_4.html#SEC14"> > </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> << </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> Up </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_4.html#SEC14"> >> </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> 2.4 Logging Output </H2>
|
||
|
<!--docid::SEC13::-->
|
||
|
<P>
|
||
|
|
||
|
You may want to save the output of GDB commands to a file.
|
||
|
There are several commands to control GDB's logging.
|
||
|
</P><P>
|
||
|
|
||
|
<DL COMPACT>
|
||
|
<A NAME="IDX60"></A>
|
||
|
<DT><CODE>set logging on</CODE>
|
||
|
<DD>Enable logging.
|
||
|
<DT><CODE>set logging off</CODE>
|
||
|
<DD>Disable logging.
|
||
|
<A NAME="IDX61"></A>
|
||
|
<DT><CODE>set logging file <VAR>file</VAR></CODE>
|
||
|
<DD>Change the name of the current logfile. The default logfile is <TT>`gdb.txt'</TT>.
|
||
|
<DT><CODE>set logging overwrite [on|off]</CODE>
|
||
|
<DD>By default, GDB will append to the logfile. Set <CODE>overwrite</CODE> if
|
||
|
you want <CODE>set logging on</CODE> to overwrite the logfile instead.
|
||
|
<DT><CODE>set logging redirect [on|off]</CODE>
|
||
|
<DD>By default, GDB output will go to both the terminal and the logfile.
|
||
|
Set <CODE>redirect</CODE> if you want output to go only to the log file.
|
||
|
<A NAME="IDX62"></A>
|
||
|
<DT><CODE>show logging</CODE>
|
||
|
<DD>Show the current values of the logging settings.
|
||
|
</DL>
|
||
|
<P>
|
||
|
|
||
|
<A NAME="Commands"></A>
|
||
|
<HR SIZE="6">
|
||
|
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
|
||
|
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_3.html#SEC6"> << </A>]</TD>
|
||
|
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="gdb_4.html#SEC14"> >> </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>
|