214 lines
15 KiB
HTML
214 lines
15 KiB
HTML
|
<html lang="en">
|
||
|
<head>
|
||
|
<title>Mode Options - Debugging with GDB</title>
|
||
|
<meta http-equiv="Content-Type" content="text/html">
|
||
|
<meta name="description" content="Debugging with GDB">
|
||
|
<meta name="generator" content="makeinfo 4.13">
|
||
|
<link title="Top" rel="start" href="index.html#Top">
|
||
|
<link rel="up" href="Invoking-GDB.html#Invoking-GDB" title="Invoking GDB">
|
||
|
<link rel="prev" href="File-Options.html#File-Options" title="File Options">
|
||
|
<link rel="next" href="Startup.html#Startup" title="Startup">
|
||
|
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||
|
<!--
|
||
|
Copyright (C) 1988-2019 Free Software Foundation, Inc.
|
||
|
|
||
|
Permission is granted to copy, distribute and/or modify this document
|
||
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||
|
any later version published by the Free Software Foundation; with the
|
||
|
Invariant Sections being ``Free Software'' and ``Free Software Needs
|
||
|
Free Documentation'', with the Front-Cover Texts being ``A GNU Manual,''
|
||
|
and with the Back-Cover Texts as in (a) below.
|
||
|
|
||
|
(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
|
||
|
this GNU Manual. Buying copies from GNU Press supports the FSF in
|
||
|
developing GNU and promoting software freedom.''
|
||
|
-->
|
||
|
<meta http-equiv="Content-Style-Type" content="text/css">
|
||
|
<style type="text/css"><!--
|
||
|
pre.display { font-family:inherit }
|
||
|
pre.format { font-family:inherit }
|
||
|
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||
|
pre.smallformat { font-family:inherit; font-size:smaller }
|
||
|
pre.smallexample { font-size:smaller }
|
||
|
pre.smalllisp { font-size:smaller }
|
||
|
span.sc { font-variant:small-caps }
|
||
|
span.roman { font-family:serif; font-weight:normal; }
|
||
|
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||
|
--></style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div class="node">
|
||
|
<a name="Mode-Options"></a>
|
||
|
<p>
|
||
|
Next: <a rel="next" accesskey="n" href="Startup.html#Startup">Startup</a>,
|
||
|
Previous: <a rel="previous" accesskey="p" href="File-Options.html#File-Options">File Options</a>,
|
||
|
Up: <a rel="up" accesskey="u" href="Invoking-GDB.html#Invoking-GDB">Invoking GDB</a>
|
||
|
<hr>
|
||
|
</div>
|
||
|
|
||
|
<h4 class="subsection">2.1.2 Choosing Modes</h4>
|
||
|
|
||
|
<p>You can run <span class="sc">gdb</span> in various alternative modes—for example, in
|
||
|
batch mode or quiet mode.
|
||
|
|
||
|
<dl>
|
||
|
<a name="g_t_002dnx"></a><dt><code>-nx</code><dt><code>-n</code><dd><a name="index-g_t_0040code_007b_002d_002dnx_007d-26"></a><a name="index-g_t_0040code_007b_002dn_007d-27"></a>Do not execute commands found in any initialization file.
|
||
|
There are three init files, loaded in the following order:
|
||
|
|
||
|
<dl>
|
||
|
<dt><samp><span class="file">system.gdbinit</span></samp><dd>This is the system-wide init file.
|
||
|
Its location is specified with the <code>--with-system-gdbinit</code>
|
||
|
configure option (see <a href="System_002dwide-configuration.html#System_002dwide-configuration">System-wide configuration</a>).
|
||
|
It is loaded first when <span class="sc">gdb</span> starts, before command line options
|
||
|
have been processed.
|
||
|
<br><dt><samp><span class="file">~/.gdbinit</span></samp><dd>This is the init file in your home directory.
|
||
|
It is loaded next, after <samp><span class="file">system.gdbinit</span></samp>, and before
|
||
|
command options have been processed.
|
||
|
<br><dt><samp><span class="file">./.gdbinit</span></samp><dd>This is the init file in the current directory.
|
||
|
It is loaded last, after command line options other than <code>-x</code> and
|
||
|
<code>-ex</code> have been processed. Command line options <code>-x</code> and
|
||
|
<code>-ex</code> are processed last, after <samp><span class="file">./.gdbinit</span></samp> has been loaded.
|
||
|
</dl>
|
||
|
|
||
|
<p>For further documentation on startup processing, See <a href="Startup.html#Startup">Startup</a>.
|
||
|
For documentation on how to write command files,
|
||
|
See <a href="Command-Files.html#Command-Files">Command Files</a>.
|
||
|
|
||
|
<p><a name="g_t_002dnh"></a><br><dt><code>-nh</code><dd><a name="index-g_t_0040code_007b_002d_002dnh_007d-28"></a>Do not execute commands found in <samp><span class="file">~/.gdbinit</span></samp>, the init file
|
||
|
in your home directory.
|
||
|
See <a href="Startup.html#Startup">Startup</a>.
|
||
|
|
||
|
<br><dt><code>-quiet</code><dt><code>-silent</code><dt><code>-q</code><dd><a name="index-g_t_0040code_007b_002d_002dquiet_007d-29"></a><a name="index-g_t_0040code_007b_002d_002dsilent_007d-30"></a><a name="index-g_t_0040code_007b_002dq_007d-31"></a>“Quiet”. Do not print the introductory and copyright messages. These
|
||
|
messages are also suppressed in batch mode.
|
||
|
|
||
|
<br><dt><code>-batch</code><dd><a name="index-g_t_0040code_007b_002d_002dbatch_007d-32"></a>Run in batch mode. Exit with status <code>0</code> after processing all the
|
||
|
command files specified with ‘<samp><span class="samp">-x</span></samp>’ (and all commands from
|
||
|
initialization files, if not inhibited with ‘<samp><span class="samp">-n</span></samp>’). Exit with
|
||
|
nonzero status if an error occurs in executing the <span class="sc">gdb</span> commands
|
||
|
in the command files. Batch mode also disables pagination, sets unlimited
|
||
|
terminal width and height see <a href="Screen-Size.html#Screen-Size">Screen Size</a>, and acts as if <kbd>set confirm
|
||
|
off</kbd> were in effect (see <a href="Messages_002fWarnings.html#Messages_002fWarnings">Messages/Warnings</a>).
|
||
|
|
||
|
<p>Batch mode may be useful for running <span class="sc">gdb</span> as a filter, for
|
||
|
example to download and run a program on another computer; in order to
|
||
|
make this more useful, the message
|
||
|
|
||
|
<pre class="smallexample"> Program exited normally.
|
||
|
</pre>
|
||
|
<p class="noindent">(which is ordinarily issued whenever a program running under
|
||
|
<span class="sc">gdb</span> control terminates) is not issued when running in batch
|
||
|
mode.
|
||
|
|
||
|
<br><dt><code>-batch-silent</code><dd><a name="index-g_t_0040code_007b_002d_002dbatch_002dsilent_007d-33"></a>Run in batch mode exactly like ‘<samp><span class="samp">-batch</span></samp>’, but totally silently. All
|
||
|
<span class="sc">gdb</span> output to <code>stdout</code> is prevented (<code>stderr</code> is
|
||
|
unaffected). This is much quieter than ‘<samp><span class="samp">-silent</span></samp>’ and would be useless
|
||
|
for an interactive session.
|
||
|
|
||
|
<p>This is particularly useful when using targets that give ‘<samp><span class="samp">Loading section</span></samp>’
|
||
|
messages, for example.
|
||
|
|
||
|
<p>Note that targets that give their output via <span class="sc">gdb</span>, as opposed to
|
||
|
writing directly to <code>stdout</code>, will also be made silent.
|
||
|
|
||
|
<br><dt><code>-return-child-result</code><dd><a name="index-g_t_0040code_007b_002d_002dreturn_002dchild_002dresult_007d-34"></a>The return code from <span class="sc">gdb</span> will be the return code from the child
|
||
|
process (the process being debugged), with the following exceptions:
|
||
|
|
||
|
<ul>
|
||
|
<li><span class="sc">gdb</span> 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><span class="samp">-return-child-result</span></samp>’.
|
||
|
<li>The user quits with an explicit value. E.g., ‘<samp><span class="samp">quit 1</span></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><span class="samp">-batch</span></samp>’ or ‘<samp><span class="samp">-batch-silent</span></samp>’,
|
||
|
when <span class="sc">gdb</span> is being used as a remote program loader or simulator
|
||
|
interface.
|
||
|
|
||
|
<br><dt><code>-nowindows</code><dt><code>-nw</code><dd><a name="index-g_t_0040code_007b_002d_002dnowindows_007d-35"></a><a name="index-g_t_0040code_007b_002dnw_007d-36"></a>“No windows”. If <span class="sc">gdb</span> comes with a graphical user interface
|
||
|
(GUI) built in, then this option tells <span class="sc">gdb</span> to only use the command-line
|
||
|
interface. If no GUI is available, this option has no effect.
|
||
|
|
||
|
<br><dt><code>-windows</code><dt><code>-w</code><dd><a name="index-g_t_0040code_007b_002d_002dwindows_007d-37"></a><a name="index-g_t_0040code_007b_002dw_007d-38"></a>If <span class="sc">gdb</span> includes a GUI, then this option requires it to be
|
||
|
used if possible.
|
||
|
|
||
|
<br><dt><code>-cd </code><var>directory</var><dd><a name="index-g_t_0040code_007b_002d_002dcd_007d-39"></a>Run <span class="sc">gdb</span> using <var>directory</var> as its working directory,
|
||
|
instead of the current directory.
|
||
|
|
||
|
<br><dt><code>-data-directory </code><var>directory</var><dt><code>-D </code><var>directory</var><dd><a name="index-g_t_0040code_007b_002d_002ddata_002ddirectory_007d-40"></a><a name="index-g_t_0040code_007b_002dD_007d-41"></a>Run <span class="sc">gdb</span> using <var>directory</var> as its data directory.
|
||
|
The data directory is where <span class="sc">gdb</span> searches for its
|
||
|
auxiliary files. See <a href="Data-Files.html#Data-Files">Data Files</a>.
|
||
|
|
||
|
<br><dt><code>-fullname</code><dt><code>-f</code><dd><a name="index-g_t_0040code_007b_002d_002dfullname_007d-42"></a><a name="index-g_t_0040code_007b_002df_007d-43"></a><span class="sc">gnu</span> Emacs sets this option when it runs <span class="sc">gdb</span> as a
|
||
|
subprocess. It tells <span class="sc">gdb</span> 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><span class="samp">\032</span></samp>’ characters, followed by
|
||
|
the file name, line number and character position separated by colons,
|
||
|
and a newline. The Emacs-to-<span class="sc">gdb</span> interface program uses the two
|
||
|
‘<samp><span class="samp">\032</span></samp>’ characters as a signal to display the source code for the
|
||
|
frame.
|
||
|
|
||
|
<br><dt><code>-annotate </code><var>level</var><dd><a name="index-g_t_0040code_007b_002d_002dannotate_007d-44"></a>This option sets the <dfn>annotation level</dfn> inside <span class="sc">gdb</span>. Its
|
||
|
effect is identical to using ‘<samp><span class="samp">set annotate </span><var>level</var></samp>’
|
||
|
(see <a href="Annotations.html#Annotations">Annotations</a>). The annotation <var>level</var> controls how much
|
||
|
information <span class="sc">gdb</span> 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 <span class="sc">gdb</span> is run as a subprocess of
|
||
|
<span class="sc">gnu</span> Emacs, level 3 is the maximum annotation suitable for programs
|
||
|
that control <span class="sc">gdb</span>, and level 2 has been deprecated.
|
||
|
|
||
|
<p>The annotation mechanism has largely been superseded by <span class="sc">gdb/mi</span>
|
||
|
(see <a href="GDB_002fMI.html#GDB_002fMI">GDB/MI</a>).
|
||
|
|
||
|
<br><dt><code>--args</code><dd><a name="index-g_t_0040code_007b_002d_002dargs_007d-45"></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.
|
||
|
|
||
|
<br><dt><code>-baud </code><var>bps</var><dt><code>-b </code><var>bps</var><dd><a name="index-g_t_0040code_007b_002d_002dbaud_007d-46"></a><a name="index-g_t_0040code_007b_002db_007d-47"></a>Set the line speed (baud rate or bits per second) of any serial
|
||
|
interface used by <span class="sc">gdb</span> for remote debugging.
|
||
|
|
||
|
<br><dt><code>-l </code><var>timeout</var><dd><a name="index-g_t_0040code_007b_002dl_007d-48"></a>Set the timeout (in seconds) of any communication used by <span class="sc">gdb</span>
|
||
|
for remote debugging.
|
||
|
|
||
|
<br><dt><code>-tty </code><var>device</var><dt><code>-t </code><var>device</var><dd><a name="index-g_t_0040code_007b_002d_002dtty_007d-49"></a><a name="index-g_t_0040code_007b_002dt_007d-50"></a>Run using <var>device</var> for your program's standard input and output.
|
||
|
<!-- FIXME: kingdon thinks there is more to -tty. Investigate. -->
|
||
|
|
||
|
<!-- resolve the situation of these eventually -->
|
||
|
<br><dt><code>-tui</code><dd><a name="index-g_t_0040code_007b_002d_002dtui_007d-51"></a>Activate the <dfn>Text User Interface</dfn> when starting. The Text User
|
||
|
Interface manages several text windows on the terminal, showing
|
||
|
source, assembly, registers and <span class="sc">gdb</span> command outputs
|
||
|
(see <a href="TUI.html#TUI"><span class="sc">gdb</span> Text User Interface</a>). Do not use this
|
||
|
option if you run <span class="sc">gdb</span> from Emacs (see <a href="Emacs.html#Emacs">Using <span class="sc">gdb</span> under <span class="sc">gnu</span> Emacs</a>).
|
||
|
|
||
|
<br><dt><code>-interpreter </code><var>interp</var><dd><a name="index-g_t_0040code_007b_002d_002dinterpreter_007d-52"></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 <span class="sc">gdb</span> using it as a back end.
|
||
|
See <a href="Interpreters.html#Interpreters">Command Interpreters</a>.
|
||
|
|
||
|
<p>‘<samp><span class="samp">--interpreter=mi</span></samp>’ (or ‘<samp><span class="samp">--interpreter=mi2</span></samp>’) causes
|
||
|
<span class="sc">gdb</span> to use the <span class="sc">gdb/mi</span><dfn> interface</dfn> (see <a href="GDB_002fMI.html#GDB_002fMI">The <span class="sc">gdb/mi</span> Interface</a>) included since <span class="sc">gdb</span> version 6.0. The
|
||
|
previous <span class="sc">gdb/mi</span> interface, included in <span class="sc">gdb</span> version 5.3 and
|
||
|
selected with ‘<samp><span class="samp">--interpreter=mi1</span></samp>’, is deprecated. Earlier
|
||
|
<span class="sc">gdb/mi</span> interfaces are no longer supported.
|
||
|
|
||
|
<br><dt><code>-write</code><dd><a name="index-g_t_0040code_007b_002d_002dwrite_007d-53"></a>Open the executable and core files for both reading and writing. This
|
||
|
is equivalent to the ‘<samp><span class="samp">set write on</span></samp>’ command inside <span class="sc">gdb</span>
|
||
|
(see <a href="Patching.html#Patching">Patching</a>).
|
||
|
|
||
|
<br><dt><code>-statistics</code><dd><a name="index-g_t_0040code_007b_002d_002dstatistics_007d-54"></a>This option causes <span class="sc">gdb</span> to print statistics about time and
|
||
|
memory usage after it completes each command and returns to the prompt.
|
||
|
|
||
|
<br><dt><code>-version</code><dd><a name="index-g_t_0040code_007b_002d_002dversion_007d-55"></a>This option causes <span class="sc">gdb</span> to print its version number and
|
||
|
no-warranty blurb, and exit.
|
||
|
|
||
|
<br><dt><code>-configuration</code><dd><a name="index-g_t_0040code_007b_002d_002dconfiguration_007d-56"></a>This option causes <span class="sc">gdb</span> to print details about its build-time
|
||
|
configuration parameters, and then exit. These details can be
|
||
|
important when reporting <span class="sc">gdb</span> bugs (see <a href="GDB-Bugs.html#GDB-Bugs">GDB Bugs</a>).
|
||
|
|
||
|
</dl>
|
||
|
|
||
|
</body></html>
|
||
|
|