|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <!-- Copyright (C) 1988-2020 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." -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Maintenance Commands (Debugging with GDB)</title>
-
- <meta name="description" content="Maintenance Commands (Debugging with GDB)">
- <meta name="keywords" content="Maintenance Commands (Debugging with GDB)">
- <meta name="resource-type" content="document">
- <meta name="distribution" content="global">
- <meta name="Generator" content="makeinfo">
- <link href="index.html#Top" rel="start" title="Top">
- <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
- <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
- <link href="index.html#Top" rel="up" title="Top">
- <link href="Remote-Protocol.html#Remote-Protocol" rel="next" title="Remote Protocol">
- <link href="System_002dwide-Configuration-Scripts.html#System_002dwide-Configuration-Scripts" rel="prev" title="System-wide Configuration Scripts">
- <style type="text/css">
- <!--
- a.summary-letter {text-decoration: none}
- blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
- div.display {margin-left: 3.2em}
- div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
- kbd {font-style: oblique}
- pre.display {font-family: inherit}
- pre.format {font-family: inherit}
- pre.menu-comment {font-family: serif}
- pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
- span.nolinebreak {white-space: nowrap}
- span.roman {font-family: initial; font-weight: normal}
- span.sansserif {font-family: sans-serif; font-weight: normal}
- ul.no-bullet {list-style: none}
- -->
- </style>
-
-
- </head>
-
- <body lang="en">
- <a name="Maintenance-Commands"></a>
- <div class="header">
- <p>
- Next: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="n" rel="next">Remote Protocol</a>, Previous: <a href="Installing-GDB.html#Installing-GDB" accesskey="p" rel="prev">Installing GDB</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
- </div>
- <hr>
- <a name="Maintenance-Commands-1"></a>
- <h2 class="appendix">Appendix D Maintenance Commands</h2>
- <a name="index-maintenance-commands"></a>
- <a name="index-internal-commands"></a>
-
- <p>In addition to commands intended for <small>GDB</small> users, <small>GDB</small>
- includes a number of commands intended for <small>GDB</small> developers,
- that are not documented elsewhere in this manual. These commands are
- provided here for reference. (For commands that turn on debugging
- messages, see <a href="Debugging-Output.html#Debugging-Output">Debugging Output</a>.)
- </p>
- <dl compact="compact">
- <dd><a name="index-maint-agent"></a>
- <a name="index-maint-agent_002deval"></a>
- </dd>
- <dt><code>maint agent <span class="roman">[</span>-at <var>location</var><span class="roman">,</span><span class="roman">]</span> <var>expression</var></code></dt>
- <dt><code>maint agent-eval <span class="roman">[</span>-at <var>location</var><span class="roman">,</span><span class="roman">]</span> <var>expression</var></code></dt>
- <dd><p>Translate the given <var>expression</var> into remote agent bytecodes.
- This command is useful for debugging the Agent Expression mechanism
- (see <a href="Agent-Expressions.html#Agent-Expressions">Agent Expressions</a>). The ‘<samp>agent</samp>’ version produces an
- expression useful for data collection, such as by tracepoints, while
- ‘<samp>maint agent-eval</samp>’ produces an expression that evaluates directly
- to a result. For instance, a collection expression for <code>globa +
- globb</code> will include bytecodes to record four bytes of memory at each
- of the addresses of <code>globa</code> and <code>globb</code>, while discarding
- the result of the addition, while an evaluation expression will do the
- addition and return the sum.
- If <code>-at</code> is given, generate remote agent bytecode for <var>location</var>.
- If not, generate remote agent bytecode for current frame PC address.
- </p>
- <a name="index-maint-agent_002dprintf"></a>
- </dd>
- <dt><code>maint agent-printf <var>format</var>,<var>expr</var>,...</code></dt>
- <dd><p>Translate the given format string and list of argument expressions
- into remote agent bytecodes and display them as a disassembled list.
- This command is useful for debugging the agent version of dynamic
- printf (see <a href="Dynamic-Printf.html#Dynamic-Printf">Dynamic Printf</a>).
- </p>
- <a name="index-maint-info-breakpoints"></a>
- </dd>
- <dt><code><a name="maint-info-breakpoints"></a>maint info breakpoints</code></dt>
- <dd><p>Using the same format as ‘<samp>info breakpoints</samp>’, display both the
- breakpoints you’ve set explicitly, and those <small>GDB</small> is using for
- internal purposes. Internal breakpoints are shown with negative
- breakpoint numbers. The type column identifies what kind of breakpoint
- is shown:
- </p>
- <dl compact="compact">
- <dt><code>breakpoint</code></dt>
- <dd><p>Normal, explicitly set breakpoint.
- </p>
- </dd>
- <dt><code>watchpoint</code></dt>
- <dd><p>Normal, explicitly set watchpoint.
- </p>
- </dd>
- <dt><code>longjmp</code></dt>
- <dd><p>Internal breakpoint, used to handle correctly stepping through
- <code>longjmp</code> calls.
- </p>
- </dd>
- <dt><code>longjmp resume</code></dt>
- <dd><p>Internal breakpoint at the target of a <code>longjmp</code>.
- </p>
- </dd>
- <dt><code>until</code></dt>
- <dd><p>Temporary internal breakpoint used by the <small>GDB</small> <code>until</code> command.
- </p>
- </dd>
- <dt><code>finish</code></dt>
- <dd><p>Temporary internal breakpoint used by the <small>GDB</small> <code>finish</code> command.
- </p>
- </dd>
- <dt><code>shlib events</code></dt>
- <dd><p>Shared library events.
- </p>
- </dd>
- </dl>
-
- <a name="index-maint-info-btrace"></a>
- </dd>
- <dt><code>maint info btrace</code></dt>
- <dd><p>Pint information about raw branch tracing data.
- </p>
- <a name="index-maint-btrace-packet_002dhistory"></a>
- </dd>
- <dt><code>maint btrace packet-history</code></dt>
- <dd><p>Print the raw branch trace packets that are used to compute the
- execution history for the ‘<samp>record btrace</samp>’ command. Both the
- information and the format in which it is printed depend on the btrace
- recording format.
- </p>
- <dl compact="compact">
- <dt><code>bts</code></dt>
- <dd><p>For the BTS recording format, print a list of blocks of sequential
- code. For each block, the following information is printed:
- </p>
- <dl compact="compact">
- <dt>Block number</dt>
- <dd><p>Newer blocks have higher numbers. The oldest block has number zero.
- </p></dd>
- <dt>Lowest ‘<samp>PC</samp>’</dt>
- <dt>Highest ‘<samp>PC</samp>’</dt>
- </dl>
-
- </dd>
- <dt><code>pt</code></dt>
- <dd><p>For the Intel Processor Trace recording format, print a list of
- Intel Processor Trace packets. For each packet, the following
- information is printed:
- </p>
- <dl compact="compact">
- <dt>Packet number</dt>
- <dd><p>Newer packets have higher numbers. The oldest packet has number zero.
- </p></dd>
- <dt>Trace offset</dt>
- <dd><p>The packet’s offset in the trace stream.
- </p></dd>
- <dt>Packet opcode and payload</dt>
- </dl>
- </dd>
- </dl>
-
- <a name="index-maint-btrace-clear_002dpacket_002dhistory"></a>
- </dd>
- <dt><code>maint btrace clear-packet-history</code></dt>
- <dd><p>Discards the cached packet history printed by the ‘<samp>maint btrace
- packet-history</samp>’ command. The history will be computed again when
- needed.
- </p>
- <a name="index-maint-btrace-clear"></a>
- </dd>
- <dt><code>maint btrace clear</code></dt>
- <dd><p>Discard the branch trace data. The data will be fetched anew and the
- branch trace will be recomputed when needed.
- </p>
- <p>This implicitly truncates the branch trace to a single branch trace
- buffer. When updating branch trace incrementally, the branch trace
- available to <small>GDB</small> may be bigger than a single branch trace
- buffer.
- </p>
- <a name="index-maint-set-btrace-pt-skip_002dpad"></a>
- </dd>
- <dt><code>maint set btrace pt skip-pad</code></dt>
- <dd><a name="index-maint-show-btrace-pt-skip_002dpad"></a>
- </dd>
- <dt><code>maint show btrace pt skip-pad</code></dt>
- <dd><p>Control whether <small>GDB</small> will skip PAD packets when computing the
- packet history.
- </p>
- <a name="index-set-displaced_002dstepping"></a>
- <a name="index-show-displaced_002dstepping"></a>
- <a name="index-displaced-stepping-support"></a>
- <a name="index-out_002dof_002dline-single_002dstepping"></a>
- </dd>
- <dt><code>set displaced-stepping</code></dt>
- <dt><code>show displaced-stepping</code></dt>
- <dd><p>Control whether or not <small>GDB</small> will do <em>displaced stepping</em>
- if the target supports it. Displaced stepping is a way to single-step
- over breakpoints without removing them from the inferior, by executing
- an out-of-line copy of the instruction that was originally at the
- breakpoint location. It is also known as out-of-line single-stepping.
- </p>
- <dl compact="compact">
- <dt><code>set displaced-stepping on</code></dt>
- <dd><p>If the target architecture supports it, <small>GDB</small> will use
- displaced stepping to step over breakpoints.
- </p>
- </dd>
- <dt><code>set displaced-stepping off</code></dt>
- <dd><p><small>GDB</small> will not use displaced stepping to step over breakpoints,
- even if such is supported by the target architecture.
- </p>
- <a name="index-non_002dstop-mode_002c-and-set-displaced_002dstepping"></a>
- </dd>
- <dt><code>set displaced-stepping auto</code></dt>
- <dd><p>This is the default mode. <small>GDB</small> will use displaced stepping
- only if non-stop mode is active (see <a href="Non_002dStop-Mode.html#Non_002dStop-Mode">Non-Stop Mode</a>) and the target
- architecture supports displaced stepping.
- </p></dd>
- </dl>
-
- <a name="index-maint-check_002dpsymtabs"></a>
- </dd>
- <dt><code>maint check-psymtabs</code></dt>
- <dd><p>Check the consistency of currently expanded psymtabs versus symtabs.
- Use this to check, for example, whether a symbol is in one but not the other.
- </p>
- <a name="index-maint-check_002dsymtabs"></a>
- </dd>
- <dt><code>maint check-symtabs</code></dt>
- <dd><p>Check the consistency of currently expanded symtabs.
- </p>
- <a name="index-maint-expand_002dsymtabs"></a>
- </dd>
- <dt><code>maint expand-symtabs [<var>regexp</var>]</code></dt>
- <dd><p>Expand symbol tables.
- If <var>regexp</var> is specified, only expand symbol tables for file
- names matching <var>regexp</var>.
- </p>
- <a name="index-maint-set-catch_002ddemangler_002dcrashes"></a>
- <a name="index-maint-show-catch_002ddemangler_002dcrashes"></a>
- <a name="index-demangler-crashes"></a>
- </dd>
- <dt><code>maint set catch-demangler-crashes [on|off]</code></dt>
- <dt><code>maint show catch-demangler-crashes</code></dt>
- <dd><p>Control whether <small>GDB</small> should attempt to catch crashes in the
- symbol name demangler. The default is to attempt to catch crashes.
- If enabled, the first time a crash is caught, a core file is created,
- the offending symbol is displayed and the user is presented with the
- option to terminate the current session.
- </p>
- <a name="index-maint-cplus-first_005fcomponent"></a>
- </dd>
- <dt><code>maint cplus first_component <var>name</var></code></dt>
- <dd><p>Print the first C<tt>++</tt> class/namespace component of <var>name</var>.
- </p>
- <a name="index-maint-cplus-namespace"></a>
- </dd>
- <dt><code>maint cplus namespace</code></dt>
- <dd><p>Print the list of possible C<tt>++</tt> namespaces.
- </p>
- <a name="index-maint-deprecate"></a>
- <a name="index-maint-undeprecate"></a>
- <a name="index-deprecated-commands"></a>
- </dd>
- <dt><code>maint deprecate <var>command</var> <span class="roman">[</span><var>replacement</var><span class="roman">]</span></code></dt>
- <dt><code>maint undeprecate <var>command</var></code></dt>
- <dd><p>Deprecate or undeprecate the named <var>command</var>. Deprecated commands
- cause <small>GDB</small> to issue a warning when you use them. The optional
- argument <var>replacement</var> says which newer command should be used in
- favor of the deprecated one; if it is given, <small>GDB</small> will mention
- the replacement as part of the warning.
- </p>
- <a name="index-maint-dump_002dme"></a>
- </dd>
- <dt><code>maint dump-me</code></dt>
- <dd><a name="index-SIGQUIT-signal_002c-dump-core-of-GDB"></a>
- <p>Cause a fatal signal in the debugger and force it to dump its core.
- This is supported only on systems which support aborting a program
- with the <code>SIGQUIT</code> signal.
- </p>
- <a name="index-maint-internal_002derror"></a>
- <a name="index-maint-internal_002dwarning"></a>
- <a name="index-maint-demangler_002dwarning"></a>
- <a name="index-demangler-crashes-1"></a>
- </dd>
- <dt><code>maint internal-error <span class="roman">[</span><var>message-text</var><span class="roman">]</span></code></dt>
- <dt><code>maint internal-warning <span class="roman">[</span><var>message-text</var><span class="roman">]</span></code></dt>
- <dt><code>maint demangler-warning <span class="roman">[</span><var>message-text</var><span class="roman">]</span></code></dt>
- <dd>
- <p>Cause <small>GDB</small> to call the internal function <code>internal_error</code>,
- <code>internal_warning</code> or <code>demangler_warning</code> and hence behave
- as though an internal problem has been detected. In addition to
- reporting the internal problem, these functions give the user the
- opportunity to either quit <small>GDB</small> or (for <code>internal_error</code>
- and <code>internal_warning</code>) create a core file of the current
- <small>GDB</small> session.
- </p>
- <p>These commands take an optional parameter <var>message-text</var> that is
- used as the text of the error or warning message.
- </p>
- <p>Here’s an example of using <code>internal-error</code>:
- </p>
- <div class="smallexample">
- <pre class="smallexample">(gdb) <kbd>maint internal-error testing, 1, 2</kbd>
- …/maint.c:121: internal-error: testing, 1, 2
- A problem internal to GDB has been detected. Further
- debugging may prove unreliable.
- Quit this debugging session? (y or n) <kbd>n</kbd>
- Create a core file? (y or n) <kbd>n</kbd>
- (gdb)
- </pre></div>
-
- <a name="index-GDB-internal-error"></a>
- <a name="index-internal-errors_002c-control-of-GDB-behavior"></a>
- <a name="index-demangler-crashes-2"></a>
-
- <a name="index-maint-set-internal_002derror"></a>
- <a name="index-maint-show-internal_002derror"></a>
- <a name="index-maint-set-internal_002dwarning"></a>
- <a name="index-maint-show-internal_002dwarning"></a>
- <a name="index-maint-set-demangler_002dwarning"></a>
- <a name="index-maint-show-demangler_002dwarning"></a>
- </dd>
- <dt><code>maint set internal-error <var>action</var> [ask|yes|no]</code></dt>
- <dt><code>maint show internal-error <var>action</var></code></dt>
- <dt><code>maint set internal-warning <var>action</var> [ask|yes|no]</code></dt>
- <dt><code>maint show internal-warning <var>action</var></code></dt>
- <dt><code>maint set demangler-warning <var>action</var> [ask|yes|no]</code></dt>
- <dt><code>maint show demangler-warning <var>action</var></code></dt>
- <dd><p>When <small>GDB</small> reports an internal problem (error or warning) it
- gives the user the opportunity to both quit <small>GDB</small> and create a
- core file of the current <small>GDB</small> session. These commands let you
- override the default behaviour for each particular <var>action</var>,
- described in the table below.
- </p>
- <dl compact="compact">
- <dt>‘<samp>quit</samp>’</dt>
- <dd><p>You can specify that <small>GDB</small> should always (yes) or never (no)
- quit. The default is to ask the user what to do.
- </p>
- </dd>
- <dt>‘<samp>corefile</samp>’</dt>
- <dd><p>You can specify that <small>GDB</small> should always (yes) or never (no)
- create a core file. The default is to ask the user what to do. Note
- that there is no <code>corefile</code> option for <code>demangler-warning</code>:
- demangler warnings always create a core file and this cannot be
- disabled.
- </p></dd>
- </dl>
-
- <a name="index-maint-packet"></a>
- </dd>
- <dt><code>maint packet <var>text</var></code></dt>
- <dd><p>If <small>GDB</small> is talking to an inferior via the serial protocol,
- then this command sends the string <var>text</var> to the inferior, and
- displays the response packet. <small>GDB</small> supplies the initial
- ‘<samp>$</samp>’ character, the terminating ‘<samp>#</samp>’ character, and the
- checksum.
- </p>
- <a name="index-maint-print-architecture"></a>
- </dd>
- <dt><code>maint print architecture <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt>
- <dd><p>Print the entire architecture configuration. The optional argument
- <var>file</var> names the file where the output goes.
- </p>
- <a name="index-maint-print-c_002dtdesc-_005bfile_005d"></a>
- </dd>
- <dt><code>maint print c-tdesc</code></dt>
- <dd><p>Print the target description (see <a href="Target-Descriptions.html#Target-Descriptions">Target Descriptions</a>) as
- a C source file. By default, the target description is for the current
- target, but if the optional argument <var>file</var> is provided, that file
- is used to produce the description. The <var>file</var> should be an XML
- document, of the form described in <a href="Target-Description-Format.html#Target-Description-Format">Target Description Format</a>.
- The created source file is built into <small>GDB</small> when <small>GDB</small> is
- built again. This command is used by developers after they add or
- modify XML target descriptions.
- </p>
- <a name="index-maint-print-xml_002dtdesc"></a>
- </dd>
- <dt><code>maint print xml-tdesc <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt>
- <dd><p>Print the target description (see <a href="Target-Descriptions.html#Target-Descriptions">Target Descriptions</a>) as an XML
- file. By default print the target description for the current target,
- but if the optional argument <var>file</var> is provided, then that file is
- read in by GDB and then used to produce the description. The
- <var>file</var> should be an XML document, of the form described in
- <a href="Target-Description-Format.html#Target-Description-Format">Target Description Format</a>.
- </p>
- <a name="index-maint-check-xml_002ddescriptions"></a>
- </dd>
- <dt><code>maint check xml-descriptions <var>dir</var></code></dt>
- <dd><p>Check that the target descriptions dynamically created by <small>GDB</small>
- equal the descriptions created from XML files found in <var>dir</var>.
- </p>
- <a name="maint-check-libthread_002ddb"></a><a name="index-maint-check-libthread_002ddb"></a>
- </dd>
- <dt><code>maint check libthread-db</code></dt>
- <dd><p>Run integrity checks on the current inferior’s thread debugging
- library. This exercises all <code>libthread_db</code> functionality used by
- <small>GDB</small> on GNU/Linux systems, and by extension also exercises the
- <code>proc_service</code> functions provided by <small>GDB</small> that
- <code>libthread_db</code> uses. Note that parts of the test may be skipped
- on some platforms when debugging core files.
- </p>
- <a name="index-maint-print-core_002dfile_002dbacked_002dmappings"></a>
- <a name="index-memory-address-space-mappings-1"></a>
- </dd>
- <dt><code>maint print core-file-backed-mappings</code></dt>
- <dd><p>Print the file-backed mappings which were loaded from a core file note.
- This output represents state internal to <small>GDB</small> and should be
- similar to the mappings displayed by the <code>info proc mappings</code>
- command.
- </p>
- <a name="index-maint-print-dummy_002dframes"></a>
- </dd>
- <dt><code>maint print dummy-frames</code></dt>
- <dd><p>Prints the contents of <small>GDB</small>’s internal dummy-frame stack.
- </p>
- <div class="smallexample">
- <pre class="smallexample">(gdb) <kbd>b add</kbd>
- …
- (gdb) <kbd>print add(2,3)</kbd>
- Breakpoint 2, add (a=2, b=3) at …
- 58 return (a + b);
- The program being debugged stopped while in a function called from GDB.
- …
- (gdb) <kbd>maint print dummy-frames</kbd>
- 0xa8206d8: id={stack=0xbfffe734,code=0xbfffe73f,!special}, ptid=process 9353
- (gdb)
- </pre></div>
-
- <p>Takes an optional file parameter.
- </p>
- <a name="index-maint-print-registers"></a>
- <a name="index-maint-print-raw_002dregisters"></a>
- <a name="index-maint-print-cooked_002dregisters"></a>
- <a name="index-maint-print-register_002dgroups"></a>
- <a name="index-maint-print-remote_002dregisters"></a>
- </dd>
- <dt><code>maint print registers <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt>
- <dt><code>maint print raw-registers <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt>
- <dt><code>maint print cooked-registers <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt>
- <dt><code>maint print register-groups <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt>
- <dt><code>maint print remote-registers <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt>
- <dd><p>Print <small>GDB</small>’s internal register data structures.
- </p>
- <p>The command <code>maint print raw-registers</code> includes the contents of
- the raw register cache; the command <code>maint print
- cooked-registers</code> includes the (cooked) value of all registers,
- including registers which aren’t available on the target nor visible
- to user; the command <code>maint print register-groups</code> includes the
- groups that each register is a member of; and the command <code>maint
- print remote-registers</code> includes the remote target’s register numbers
- and offsets in the ‘G’ packets.
- </p>
- <p>These commands take an optional parameter, a file name to which to
- write the information.
- </p>
- <a name="index-maint-print-reggroups"></a>
- </dd>
- <dt><code>maint print reggroups <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt>
- <dd><p>Print <small>GDB</small>’s internal register group data structures. The
- optional argument <var>file</var> tells to what file to write the
- information.
- </p>
- <p>The register groups info looks like this:
- </p>
- <div class="smallexample">
- <pre class="smallexample">(gdb) <kbd>maint print reggroups</kbd>
- Group Type
- general user
- float user
- all user
- vector user
- system user
- save internal
- restore internal
- </pre></div>
-
- <a name="index-flushregs"></a>
- </dd>
- <dt><code>flushregs</code></dt>
- <dd><p>This command forces <small>GDB</small> to flush its internal register cache.
- </p>
- <a name="index-maint-print-objfiles"></a>
- <a name="index-info-for-known-object-files"></a>
- </dd>
- <dt><code>maint print objfiles <span class="roman">[</span><var>regexp</var><span class="roman">]</span></code></dt>
- <dd><p>Print a dump of all known object files.
- If <var>regexp</var> is specified, only print object files whose names
- match <var>regexp</var>. For each object file, this command prints its name,
- address in memory, and all of its psymtabs and symtabs.
- </p>
- <a name="index-maint-print-user_002dregisters"></a>
- <a name="index-user-registers"></a>
- </dd>
- <dt><code>maint print user-registers</code></dt>
- <dd><p>List all currently available <em>user registers</em>. User registers
- typically provide alternate names for actual hardware registers. They
- include the four “standard” registers <code>$fp</code>, <code>$pc</code>,
- <code>$sp</code>, and <code>$ps</code>. See <a href="Registers.html#standard-registers">standard registers</a>. User
- registers can be used in expressions in the same way as the canonical
- register names, but only the latter are listed by the <code>info
- registers</code> and <code>maint print registers</code> commands.
- </p>
- <a name="index-maint-print-section_002dscripts"></a>
- <a name="index-info-for-known-_002edebug_005fgdb_005fscripts_002dloaded-scripts"></a>
- </dd>
- <dt><code>maint print section-scripts [<var>regexp</var>]</code></dt>
- <dd><p>Print a dump of scripts specified in the <code>.debug_gdb_section</code> section.
- If <var>regexp</var> is specified, only print scripts loaded by object files
- matching <var>regexp</var>.
- For each script, this command prints its name as specified in the objfile,
- and the full path if known.
- See <a href="dotdebug_005fgdb_005fscripts-section.html#dotdebug_005fgdb_005fscripts-section">dotdebug_gdb_scripts section</a>.
- </p>
- <a name="index-maint-print-statistics"></a>
- <a name="index-bcache-statistics"></a>
- </dd>
- <dt><code>maint print statistics</code></dt>
- <dd><p>This command prints, for each object file in the program, various data
- about that object file followed by the byte cache (<em>bcache</em>)
- statistics for the object file. The objfile data includes the number
- of minimal, partial, full, and stabs symbols, the number of types
- defined by the objfile, the number of as yet unexpanded psym tables,
- the number of line tables and string tables, and the amount of memory
- used by the various tables. The bcache statistics include the counts,
- sizes, and counts of duplicates of all and unique objects, max,
- average, and median entry size, total memory used and its overhead and
- savings, and various measures of the hash table size and chain
- lengths.
- </p>
- <a name="index-maint-print-target_002dstack"></a>
- <a name="index-target-stack-description"></a>
- </dd>
- <dt><code>maint print target-stack</code></dt>
- <dd><p>A <em>target</em> is an interface between the debugger and a particular
- kind of file or process. Targets can be stacked in <em>strata</em>,
- so that more than one target can potentially respond to a request.
- In particular, memory accesses will walk down the stack of targets
- until they find a target that is interested in handling that particular
- address.
- </p>
- <p>This command prints a short description of each layer that was pushed on
- the <em>target stack</em>, starting from the top layer down to the bottom one.
- </p>
- <a name="index-maint-print-type"></a>
- <a name="index-type-chain-of-a-data-type"></a>
- </dd>
- <dt><code>maint print type <var>expr</var></code></dt>
- <dd><p>Print the type chain for a type specified by <var>expr</var>. The argument
- can be either a type name or a symbol. If it is a symbol, the type of
- that symbol is described. The type chain produced by this command is
- a recursive definition of the data type as stored in <small>GDB</small>’s
- data structures, including its flags and contained types.
- </p>
- <a name="index-maint-selftest"></a>
- <a name="index-self-tests"></a>
- </dd>
- <dt><code>maint selftest <span class="roman">[</span><var>filter</var><span class="roman">]</span></code></dt>
- <dd><p>Run any self tests that were compiled in to <small>GDB</small>. This will
- print a message showing how many tests were run, and how many failed.
- If a <var>filter</var> is passed, only the tests with <var>filter</var> in their
- name will by ran.
- </p>
- <a name="index-maint-info-selftests"></a>
- <a name="index-self-tests-1"></a>
- </dd>
- <dt><code>maint info selftests</code></dt>
- <dd><p>List the selftests compiled in to <small>GDB</small>.
- </p>
- <a name="index-maint-set-dwarf-always_002ddisassemble"></a>
- <a name="index-maint-show-dwarf-always_002ddisassemble"></a>
- </dd>
- <dt><code>maint set dwarf always-disassemble</code></dt>
- <dt><code>maint show dwarf always-disassemble</code></dt>
- <dd><p>Control the behavior of <code>info address</code> when using DWARF debugging
- information.
- </p>
- <p>The default is <code>off</code>, which means that <small>GDB</small> should try to
- describe a variable’s location in an easily readable format. When
- <code>on</code>, <small>GDB</small> will instead display the DWARF location
- expression in an assembly-like format. Note that some locations are
- too complex for <small>GDB</small> to describe simply; in this case you will
- always see the disassembly form.
- </p>
- <p>Here is an example of the resulting disassembly:
- </p>
- <div class="smallexample">
- <pre class="smallexample">(gdb) info addr argc
- Symbol "argc" is a complex DWARF expression:
- 1: DW_OP_fbreg 0
- </pre></div>
-
- <p>For more information on these expressions, see
- <a href="http://www.dwarfstd.org/">the DWARF standard</a>.
- </p>
- <a name="index-maint-set-dwarf-max_002dcache_002dage"></a>
- <a name="index-maint-show-dwarf-max_002dcache_002dage"></a>
- </dd>
- <dt><code>maint set dwarf max-cache-age</code></dt>
- <dt><code>maint show dwarf max-cache-age</code></dt>
- <dd><p>Control the DWARF compilation unit cache.
- </p>
- <a name="index-DWARF-compilation-units-cache"></a>
- <p>In object files with inter-compilation-unit references, such as those
- produced by the GCC option ‘<samp>-feliminate-dwarf2-dups</samp>’, the DWARF
- reader needs to frequently refer to previously read compilation units.
- This setting controls how long a compilation unit will remain in the
- cache if it is not referenced. A higher limit means that cached
- compilation units will be stored in memory longer, and more total
- memory will be used. Setting it to zero disables caching, which will
- slow down <small>GDB</small> startup, but reduce memory consumption.
- </p>
- <a name="index-maint-set-dwarf-unwinders"></a>
- <a name="index-maint-show-dwarf-unwinders"></a>
- </dd>
- <dt><code>maint set dwarf unwinders</code></dt>
- <dt><code>maint show dwarf unwinders</code></dt>
- <dd><p>Control use of the DWARF frame unwinders.
- </p>
- <a name="index-DWARF-frame-unwinders"></a>
- <p>Many targets that support DWARF debugging use <small>GDB</small>’s DWARF
- frame unwinders to build the backtrace. Many of these targets will
- also have a second mechanism for building the backtrace for use in
- cases where DWARF information is not available, this second mechanism
- is often an analysis of a function’s prologue.
- </p>
- <p>In order to extend testing coverage of the second level stack
- unwinding mechanisms it is helpful to be able to disable the DWARF
- stack unwinders, this can be done with this switch.
- </p>
- <p>In normal use of <small>GDB</small> disabling the DWARF unwinders is not
- advisable, there are cases that are better handled through DWARF than
- prologue analysis, and the debug experience is likely to be better
- with the DWARF frame unwinders enabled.
- </p>
- <p>If DWARF frame unwinders are not supported for a particular target
- architecture, then enabling this flag does not cause them to be used.
- </p>
- <a name="index-maint-set-worker_002dthreads"></a>
- <a name="index-maint-show-worker_002dthreads"></a>
- </dd>
- <dt><code>maint set worker-threads</code></dt>
- <dt><code>maint show worker-threads</code></dt>
- <dd><p>Control the number of worker threads that may be used by <small>GDB</small>.
- On capable hosts, <small>GDB</small> may use multiple threads to speed up
- certain CPU-intensive operations, such as demangling symbol names.
- While the number of threads used by <small>GDB</small> may vary, this
- command can be used to set an upper bound on this number. The default
- is <code>unlimited</code>, which lets <small>GDB</small> choose a reasonable
- number. Note that this only controls worker threads started by
- <small>GDB</small> itself; libraries used by <small>GDB</small> may start threads
- of their own.
- </p>
- <a name="index-maint-set-profile"></a>
- <a name="index-maint-show-profile"></a>
- <a name="index-profiling-GDB"></a>
- </dd>
- <dt><code>maint set profile</code></dt>
- <dt><code>maint show profile</code></dt>
- <dd><p>Control profiling of <small>GDB</small>.
- </p>
- <p>Profiling will be disabled until you use the ‘<samp>maint set profile</samp>’
- command to enable it. When you enable profiling, the system will begin
- collecting timing and execution count data; when you disable profiling or
- exit <small>GDB</small>, the results will be written to a log file. Remember that
- if you use profiling, <small>GDB</small> will overwrite the profiling log file
- (often called <samp>gmon.out</samp>). If you have a record of important profiling
- data in a <samp>gmon.out</samp> file, be sure to move it to a safe location.
- </p>
- <p>Configuring with ‘<samp>--enable-profiling</samp>’ arranges for <small>GDB</small> to be
- compiled with the ‘<samp>-pg</samp>’ compiler option.
- </p>
- <a name="index-maint-set-show_002ddebug_002dregs"></a>
- <a name="index-maint-show-show_002ddebug_002dregs"></a>
- <a name="index-hardware-debug-registers"></a>
- </dd>
- <dt><code>maint set show-debug-regs</code></dt>
- <dt><code>maint show show-debug-regs</code></dt>
- <dd><p>Control whether to show variables that mirror the hardware debug
- registers. Use <code>on</code> to enable, <code>off</code> to disable. If
- enabled, the debug registers values are shown when <small>GDB</small> inserts or
- removes a hardware breakpoint or watchpoint, and when the inferior
- triggers a hardware-assisted breakpoint or watchpoint.
- </p>
- <a name="index-maint-set-show_002dall_002dtib"></a>
- <a name="index-maint-show-show_002dall_002dtib"></a>
- </dd>
- <dt><code>maint set show-all-tib</code></dt>
- <dt><code>maint show show-all-tib</code></dt>
- <dd><p>Control whether to show all non zero areas within a 1k block starting
- at thread local base, when using the ‘<samp>info w32 thread-information-block</samp>’
- command.
- </p>
- <a name="index-maint-set-target_002dasync"></a>
- <a name="index-maint-show-target_002dasync"></a>
- </dd>
- <dt><code>maint set target-async</code></dt>
- <dt><code>maint show target-async</code></dt>
- <dd><p>This controls whether <small>GDB</small> targets operate in synchronous or
- asynchronous mode (see <a href="Background-Execution.html#Background-Execution">Background Execution</a>). Normally the
- default is asynchronous, if it is available; but this can be changed
- to more easily debug problems occurring only in synchronous mode.
- </p>
- <a name="index-maint-set-target_002dnon_002dstop-mode-_005bon_007coff_007cauto_005d"></a>
- <a name="index-maint-show-target_002dnon_002dstop"></a>
- </dd>
- <dt><code>maint set target-non-stop</code></dt>
- <dt><code>maint show target-non-stop</code></dt>
- <dd>
- <p>This controls whether <small>GDB</small> targets always operate in non-stop
- mode even if <code>set non-stop</code> is <code>off</code> (see <a href="Non_002dStop-Mode.html#Non_002dStop-Mode">Non-Stop Mode</a>). The default is <code>auto</code>, meaning non-stop mode is enabled
- if supported by the target.
- </p>
- <dl compact="compact">
- <dt><code>maint set target-non-stop auto</code></dt>
- <dd><p>This is the default mode. <small>GDB</small> controls the target in
- non-stop mode if the target supports it.
- </p>
- </dd>
- <dt><code>maint set target-non-stop on</code></dt>
- <dd><p><small>GDB</small> controls the target in non-stop mode even if the target
- does not indicate support.
- </p>
- </dd>
- <dt><code>maint set target-non-stop off</code></dt>
- <dd><p><small>GDB</small> does not control the target in non-stop mode even if the
- target supports it.
- </p></dd>
- </dl>
-
- <a name="index-maint-set-tui_002dresize_002dmessage"></a>
- <a name="index-maint-show-tui_002dresize_002dmessage"></a>
- </dd>
- <dt><code>maint set tui-resize-message</code></dt>
- <dt><code>maint show tui-resize-message</code></dt>
- <dd><p>Control whether <small>GDB</small> displays a message each time the terminal
- is resized when in TUI mode. The default is <code>off</code>, which means
- that <small>GDB</small> is silent during resizes. When <code>on</code>,
- <small>GDB</small> will display a message after a resize is completed; the
- message will include a number indicating how many times the terminal
- has been resized. This setting is intended for use by the test suite,
- where it would otherwise be difficult to determine when a resize and
- refresh has been completed.
- </p>
- <a name="index-maint-set-per_002dcommand"></a>
- <a name="index-maint-show-per_002dcommand"></a>
- </dd>
- <dt><code>maint set per-command</code></dt>
- <dt><code>maint show per-command</code></dt>
- <dd><a name="index-resources-used-by-commands"></a>
-
- <p><small>GDB</small> can display the resources used by each command.
- This is useful in debugging performance problems.
- </p>
- <dl compact="compact">
- <dt><code>maint set per-command space [on|off]</code></dt>
- <dt><code>maint show per-command space</code></dt>
- <dd><p>Enable or disable the printing of the memory used by GDB for each command.
- If enabled, <small>GDB</small> will display how much memory each command
- took, following the command’s own output.
- This can also be requested by invoking <small>GDB</small> with the
- <samp>--statistics</samp> command-line switch (see <a href="Mode-Options.html#Mode-Options">Mode Options</a>).
- </p>
- </dd>
- <dt><code>maint set per-command time [on|off]</code></dt>
- <dt><code>maint show per-command time</code></dt>
- <dd><p>Enable or disable the printing of the execution time of <small>GDB</small>
- for each command.
- If enabled, <small>GDB</small> will display how much time it
- took to execute each command, following the command’s own output.
- Both CPU time and wallclock time are printed.
- Printing both is useful when trying to determine whether the cost is
- CPU or, e.g., disk/network latency.
- Note that the CPU time printed is for <small>GDB</small> only, it does not include
- the execution time of the inferior because there’s no mechanism currently
- to compute how much time was spent by <small>GDB</small> and how much time was
- spent by the program been debugged.
- This can also be requested by invoking <small>GDB</small> with the
- <samp>--statistics</samp> command-line switch (see <a href="Mode-Options.html#Mode-Options">Mode Options</a>).
- </p>
- </dd>
- <dt><code>maint set per-command symtab [on|off]</code></dt>
- <dt><code>maint show per-command symtab</code></dt>
- <dd><p>Enable or disable the printing of basic symbol table statistics
- for each command.
- If enabled, <small>GDB</small> will display the following information:
- </p>
- <ol type="a" start="1">
- <li> number of symbol tables
- </li><li> number of primary symbol tables
- </li><li> number of blocks in the blockvector
- </li></ol>
- </dd>
- </dl>
-
- <a name="index-maint-set-check_002dlibthread_002ddb"></a>
- <a name="index-maint-show-check_002dlibthread_002ddb"></a>
- </dd>
- <dt><code>maint set check-libthread-db [on|off]</code></dt>
- <dt><code>maint show check-libthread-db</code></dt>
- <dd><p>Control whether <small>GDB</small> should run integrity checks on inferior
- specific thread debugging libraries as they are loaded. The default
- is not to perform such checks. If any check fails <small>GDB</small> will
- unload the library and continue searching for a suitable candidate as
- described in <a href="Threads.html#set-libthread_002ddb_002dsearch_002dpath">set libthread-db-search-path</a>. For more information
- about the tests, see <a href="#maint-check-libthread_002ddb">maint check libthread-db</a>.
- </p>
- <a name="index-maint-space"></a>
- <a name="index-memory-used-by-commands"></a>
- </dd>
- <dt><code>maint space <var>value</var></code></dt>
- <dd><p>An alias for <code>maint set per-command space</code>.
- A non-zero value enables it, zero disables it.
- </p>
- <a name="index-maint-time"></a>
- <a name="index-time-of-command-execution"></a>
- </dd>
- <dt><code>maint time <var>value</var></code></dt>
- <dd><p>An alias for <code>maint set per-command time</code>.
- A non-zero value enables it, zero disables it.
- </p>
- <a name="index-maint-translate_002daddress"></a>
- </dd>
- <dt><code>maint translate-address <span class="roman">[</span><var>section</var><span class="roman">]</span> <var>addr</var></code></dt>
- <dd><p>Find the symbol stored at the location specified by the address
- <var>addr</var> and an optional section name <var>section</var>. If found,
- <small>GDB</small> prints the name of the closest symbol and an offset from
- the symbol’s location to the specified address. This is similar to
- the <code>info address</code> command (see <a href="Symbols.html#Symbols">Symbols</a>), except that this
- command also allows to find symbols in other sections.
- </p>
- <p>If section was not specified, the section in which the symbol was found
- is also printed. For dynamically linked executables, the name of
- executable or shared library containing the symbol is printed as well.
- </p>
- <a name="index-maint-test_002doptions"></a>
- </dd>
- <dt><code>maint test-options require-delimiter</code></dt>
- <dt><code>maint test-options unknown-is-error</code></dt>
- <dt><code>maint test-options unknown-is-operand</code></dt>
- <dd><p>These commands are used by the testsuite to validate the command
- options framework. The <code>require-delimiter</code> variant requires a
- double-dash delimiter to indicate end of options. The
- <code>unknown-is-error</code> and <code>unknown-is-operand</code> do not. The
- <code>unknown-is-error</code> variant throws an error on unknown option,
- while <code>unknown-is-operand</code> treats unknown options as the start of
- the command’s operands. When run, the commands output the result of
- the processed options. When completed, the commands store the
- internal result of completion in a variable exposed by the <code>maint
- show test-options-completion-result</code> command.
- </p>
- <a name="index-maint-show-test_002doptions_002dcompletion_002dresult"></a>
- </dd>
- <dt><code>maint show test-options-completion-result</code></dt>
- <dd><p>Shows the result of completing the <code>maint test-options</code>
- subcommands. This is used by the testsuite to validate completion
- support in the command options framework.
- </p>
- <a name="index-maint-set-test_002dsettings"></a>
- <a name="index-maint-show-test_002dsettings"></a>
- </dd>
- <dt><code>maint set test-settings <var>kind</var></code></dt>
- <dt><code>maint show test-settings <var>kind</var></code></dt>
- <dd><p>These are representative commands for each <var>kind</var> of setting type
- <small>GDB</small> supports. They are used by the testsuite for exercising
- the settings infrastructure.
- </p>
- <a name="index-maint-with"></a>
- </dd>
- <dt><code>maint with <var>setting</var> [<var>value</var>] [-- <var>command</var>]</code></dt>
- <dd><p>Like the <code>with</code> command, but works with <code>maintenance set</code>
- variables. This is used by the testsuite to exercise the <code>with</code>
- command’s infrastructure.
- </p>
- </dd>
- </dl>
-
- <p>The following command is useful for non-interactive invocations of
- <small>GDB</small>, such as in the test suite.
- </p>
- <dl compact="compact">
- <dt><code>set watchdog <var>nsec</var></code></dt>
- <dd><a name="index-set-watchdog"></a>
- <a name="index-watchdog-timer"></a>
- <a name="index-timeout-for-commands"></a>
- <p>Set the maximum number of seconds <small>GDB</small> will wait for the
- target operation to finish. If this time expires, <small>GDB</small>
- reports and error and the command is aborted.
- </p>
- </dd>
- <dt><code>show watchdog</code></dt>
- <dd><p>Show the current setting of the target wait timeout.
- </p></dd>
- </dl>
-
- <hr>
- <div class="header">
- <p>
- Next: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="n" rel="next">Remote Protocol</a>, Previous: <a href="Installing-GDB.html#Installing-GDB" accesskey="p" rel="prev">Installing GDB</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
- </div>
-
-
-
- </body>
- </html>
|